#include <stdio.h>
#include <string.h>
int main(){
char *token = "she";
FILE *fp = fopen("test.txt","a+");
char buf[1024];
char *p;
int s=-1,len=strlen(token),line=0;
while(!feof(fp)){ //feof()是文件结束检测函数,若结束了返回1,否则为0
fgets(buf,sizeof(buf),fp);
line ++;
p = buf;
while(p)
{
if(*p==token[0] && s==-1){
s = 0;
}else if(*p==token[s+1]){ //用S统计当前满足符合查找字符的位置,一旦查找完一个字符,立马让s=-1,进行下一轮查找
s ++;
}else{
s = -1;
}
p++;
if(s==len-1){
printf("(%d,%d)
",line,p-buf-len+1); //(p-buf)是指针p相对于buf首地址的偏移量,要确定查询字符首部的位置,还需要减去字符长度
//s=-1;
}
}
s=-1;
}
}
test.txt内容如下:

运行结果:
