#include <stdio.h>
#define NUM 300
int main(){
//初期化
char s[NUM];
int i,j,count10;
int countln=0;
//検索する文字列
char search[]="child*n";
//ファイル読み込み
FILE *fp;
char *fname = "./hemingway2.txt";
fp = fopen(fname, "r");
if(fp == NULL){
printf("Cannot open a file");
return -1;
}
//各行を読み込む
while(fgets(s, NUM, fp)!=NULL){
i=0;j=0;countln++;
//処理を行う
while(s[i]!='\0'){
if(s[i]==search[j]||search[j]=='?'){
j++;
}else if(search[j]=='*'){//0文字以上10文字以下の任意の文字列
j++;count10=0;
while(count10<=10){
if(s[i]==search[j]){
j++;break;
}else{
i++;count10++;
}
}
}else if(search[j]=='@'){//0文字以上の任意の文字列
j++;
while(s[i]!='\0'){
if(s[i]==search[j]){
j++;break;
}else{
i++;
}
}
}else{
j=0;
}
if(search[j]=='\0'){
printf("%d行目%d文字目に見つかりました。\n%s\n",countln,i,s);
}
i++;
}
}
fclose(fp);
printf("検索が終了しました。");
}