如何检查字符串是否在文件中
我是C的新手,我正在试图弄清楚如何在一个包含多个数字和单词的文件中搜索特定字符串及其后面的数字。
我正在使用的输入文件如下所示:
TREES 2 BENCHES 5 ROCKS 10 PLANTS 8
我知道如何使函数读取字符串,我知道如何比较两个字符串但我不知道如何将它们放在一起或如何设置数组以读取整个文件。
我一直在使用strcmp
,但我只是不知道如何初始化我想要寻找的这个词。
你可以这样做:
#include int main(void){ FILE *fp; char *searchString="ROCKS"; fp = fopen("myfile.txt", "r"); char *buf[100]; int myNumber = -1; while((fgets(buf, 100, fp)!=NULL) { if(strstr(buf, searchString)!=NULL) { sscanf(buf + strlen(searchString), "%d", &myNumber); break; } } printf("After the loop, myNumber is %d\n", myNumber); fclose(fp); }
免责声明 – 未经测试。 应该接近……
创建一个包含要搜索的单词的数组。 创建一个外部循环,通过一次一个字符偏移的数据文件流。 创建第二个内部循环,迭代您的术语数组以进行搜索。 内循环根据外循环提供的数据检查数组中的每个项。 使用strncmp将每次比较的长度限制为要搜索的单词的长度。 匹配时,检查源缓冲区中的以下字符以确保它不会否定匹配。