|
ファイル内の文字列を検索するプログラムで、No1259に載っていたのを参考にしたのですが、↓
#include <stdio.h>
#include <string.h>
int main(int argc,char *argv[])
{
FILE *in_fp;
char line[256];
char *p,*head;
int lineNo=0;
int foundCnt=0;
/*引数の数チェック*/
if(argc != 3){
fprintf(stderr,"使用法:検索ファイル 検索語\n");
return 1;
}
/*ファイルオープン*/
in_fp=fopen(argv[1],"r");
if(in_fp==NULL){
fprintf(stderr,"ファイル[%s]を開くことができません。\n",argv[1]);
return 1;
}
/*読み込んだ一行の先頭アドレスを指すようにしておく*/
p=line;
/*先頭アドレスを保存(何文字目で発見できたかを計算するときに必要)*/
head=line;
/*ファイルエンドまで*/
while(fgets(line,256,in_fp) != NULL){
/*行数カウンタ*/
lineNo++;
/*読み込んだ一行から検索後を探し、その位置を取得*/
p=strstr(line,argv[2]);
/*見つからなければ次の行を読みに行く*/
if(p==NULL){
continue;
}
/*見つかったら、行数と何文字目かを表示する*/
else{
fprintf(stdout,"%d行目:%d文字目\n",lineNo,p-head+1);
/*見つけたときは、カウントしてやる*/
foundCnt++;
}
}
/*検索文字がファイルに1つも存在しなかったとき*/
if(foundCnt==0){
fprintf(stderr,"検索文字[%s]はファイル[%s]に存在しませんでした。\n",argv[2],argv[1]);
return 1;
}
return 0;
}
もし、address.txtというファイルからNameという文字列を検索したい場合にはどの部分にaddress.txtという文字を記入すればいいのでしょうか?
|