如何用C编写在文件内查找一个字符串?
如果我有个文件a.txt那么这时我输入一个字符串,请问如何去查找a.txt中是否有这个字符串?

你若安好便是晴天
#include <stdio.h> #include <stdlib.h> #define stringSize(string) (sizeof(string) * sizeof(char)) void contains(char *, int, FILE *); int main(void) { FILE * fp; char * fileName = "a.txt"; char str[] = "beautiful"; if((fp = fopen(fileName, "rb")) == 0) { printf("Can't open %s, program will to exit.", fileName); exit(1); } contains(str, stringSize(str), fp); fclose(fp); return 0; } void contains(char * string, int stringSize, FILE * fp) { int i = 0, j, end; char * part = (char *)calloc(stringSize, sizeof(char)); fseek(fp, 0L, SEEK_END); end = ftell(fp) - stringSize + 2; while(i < end) { j = 0; fseek(fp, (long)i++, SEEK_SET); fgets(part, stringSize, fp); while(*part) { if(*string == *part) { j++; string++; part++; continue; } break; } if(j == stringSize - 1) { printf("OK\n"); break; } else { string -= j; part -= j; } } free(part); }如果程序输出 OK 则代表这个文件中包含该字符串,无任何输出则代表不能匹配该字符串。