C初学者。有什么建议?我有一个包含文本的文件,我必须找到所有可以向前和向后读取的单词(回文),例如旋转器,眼睛等。问题是该程序只检查文件中的第一个单词。 提前谢谢。
这是我现在的代码:
#include <stdio.h>
#include <string.h>
int main() {
char buffer[255];
char one[255];
char two[255];
char *fp;
fp = fopen("duom.txt", "r");
fgets(buffer, 255, (FILE*)fp);
sscanf(buffer, "%s", one);
strcpy(two, one);
strrev(two);
if(strcmp(one, two) == 0)
printf("%s palindrome\n", one);
else
printf("%s not palindrome\n", one);
return 0;
}
答案 0 :(得分:1)
您的代码只运行一次,您需要将主分析放在while循环中。
我会让你测试循环的内容以及如何检查下一个单词。
答案 1 :(得分:0)
问题是你需要处理文本中的每个单词,而你只需处理一个单词。为了重复文本中每个单词的逻辑,您需要loop。我不会解释这个概念,因为我提供了它的参考。相反,我会告诉你如何做到这一点:
while (!feof(f)) { // while there are more characters to be analysed
fscanf(fp, "%s", one); // read another word
strcpy(two, one); // analyse it
strrev(two);
if(strcmp(one, two) == 0)
printf("%s palindrome\n", one);
else
printf("%s not palindrome\n", one);
}
Here您可以找到我正在使用的feof函数的参考。其余代码与您的代码相同。