C言語のファイルに関してのプログラムについて質問!
ファイルの中の文字列の置き換え
test.txtというテキストファイルの"dog"という文字列をすべて"rabbit"に変換し、
rabbit.txtという名前で保存するプログラムである。
#include <stdio.h>
#include <string.h>
main(){
FILE *fpr,*fpw; //読み/書きファイルポインタ
char bufr[256],bufw[256];//読み/書きバッファ
char str1[]="dog";//置換元文字列
char str2[]="rabbit";//置換先文字列
char *p,*q;
if(!(fpr=fopen("test.txt","r"))){
perror("ファイルのオープンに失敗しました。");
return;
}
if(!(fpw=fopen("rabbit.txt","w"))){
perror("ファイルのオープンに失敗しました。");
return;
}
while(1){
fgets(bufr,256,fpr);
strcpy(bufw,bufr);
p=strstr(bufr,str1); //strstr関数・・・第一引数のなかから第二引数の文字列を探し、その位置のポインタを返す。
● if(p){
● q=bufw+(p-bufr);
● strcpy(q,str2);
● strcpy(q+strlen(str2),p+strlen(str1));
● }
fprintf(fpw,"%s",bufw);
if(feof(fpr))
break;
}fclose(fpr);
fclose(fpw);
return 0;
}