Операция с присваиванием 0 именно в такой форме тут совершенно лишняя, т.к. fgets на предыдущем шаге и так уже записала 0 в конце строки. Если бы этого не было, то strlen не смогла бы вычислить корректную длину строки.
Я бы еще понял что-то подобное: search_for[79]=0; - подстраховка от переполнения буфера, хотя и это излишне, если понадеяться на корректную работу fgets. Но ведь, скорее всего, мы не будем проверять каждую реализацию fgets, поэтому такой оператор кажется более логичным, чем тот что приведен в примере.