在C中搜索文本文件中的字符串

Eri*_*ric 1 c string search text file

对于我正在编写的程序的一部分,我需要搜索文本文件以查看文件中是否存在某个单词,如果存在,我想将其打印到屏幕上.为什么使用for循环进行字符串比较,例如:

int in_dictionary(char dict[][8], char word[], int size) {
int i;

for (i = 0; i<size; i++)
    if (strcmp(word, dict[i]) == 0){
        return 0;
    }
    else{
        return 1;
    }

}
Run Code Online (Sandbox Code Playgroud)

不适合我吗?

Ada*_*eld 6

您只是将字典中的第一个单词与您要搜索的单词进行比较.你应该只在比较所有单词后返回失败:

for(...) {
    if(dict[i] matches)
        return MATCH;
}
return NO_MATCH;
Run Code Online (Sandbox Code Playgroud)

此外,您的返回值是向后的 - 通常,您返回0表示失败(不匹配),返回1表示成功(匹配).根据main()惯例,函数的例外是许多POSIX系统调用(成功返回0,失败返回-1).