我正在比较两个来自数组的字符串。
while(countX<10){
if(strcmp(scanWord[countX], currentWord[countX]) == 0)
{scoreCurrent++;scoreCurrent++;}
countX++;
}
“scanWord [countX]”和“currentWord [countX]”不比较;每次出现他们都不一样,即使他们是。如果我比较那些不是那些的东西并且我将它们打印到屏幕上进行检查,它就可以工作。他们似乎没有发挥出色。提前谢谢。
答案 0 :(得分:1)
当您阅读该行时,请删除换行符:
char *line = fgets(currentWord[countX], 20, stdin);
if (line) {
int len = strlen(line);
if (line[len-1] == '\n') {
line[len-1] = 0;
}
}
答案 1 :(得分:0)
我看到的问题:
&#34; scanWord [countX]&#34;和&#34; currentWord [countX]&#34;不要比较;每次提出它们即使它们都不相同也是如此。
你怎么知道这两个值是一样的?打印出来。打印出长度。如果处理任何类型的Unicode,请以十六进制打印出单个字节,因为看起来相同的两个Unicode字符实际上可能不同。
因为如果它们真的相同,计算机永远不会说字符串是不同的。我读到的问题的答案是字符串实际上是不同的。