Не вдаваясь в логику и наличие лишних переменных.
34 while(scanf ("%s",str)!=EOF){ А что будет, если входящая строка превысит 255 символов?
Маловероятно, но все же лучше учитывать, например делать формат "%255s", или вообще
fgets(str, sizeof(str)-1, stdin)
39 fp=fopen(buf,"rw"); Почему бы не просто "r"?
47 strncpy(sFindStr, strchr(lf, '=')+1, sizeof(sFindStr)-1); При одинаковых размерах str и sFindStr sizeof()-1 никогда не будет достигнут, а вот если когда-нибудь увеличите str, то этот sizeof может не помочь, поскольку последний байт sFindStr не обнулили, мало ли что в нем окажется.