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)
不适合我吗?
您只是将字典中的第一个单词与您要搜索的单词进行比较.你应该只在比较所有单词后返回失败:
for(...) {
if(dict[i] matches)
return MATCH;
}
return NO_MATCH;
Run Code Online (Sandbox Code Playgroud)
此外,您的返回值是向后的 - 通常,您返回0表示失败(不匹配),返回1表示成功(匹配).根据main()
惯例,函数的例外是许多POSIX系统调用(成功返回0,失败返回-1).