>>95
>while((c = fgetc(fp)) != EOF) {if(search){ if(c != key[i]) {search = FALSE; for(p = 0; p<i; p++) {fputc(key[p],outfp);}
>fputc(c,outfp); i = 0;}
>else{i ++;}
>else {if(c ==key[i]) {search = TRUE; i++;} }
>else { fputc(c,outfp);}}
これをばらすとこうなる。
--
while((c = fgetc(fp)) != EOF){
 if(search){
  if(c != key[i]){
   search = FALSE;
   for(p = 0; p<i; p++){
    fputc(key[p],outfp);
   }
   fputc(c,outfp);
   i = 0;
  }else{
   i ++;
  }else{
   if(c ==key[i]){
    search = TRUE;
    i++;
   }
  }else{
   fputc(c,outfp);
  }
 }
--
どうみてもおかしいのだが、前者ではそれが判別しにくかろ。