【发布时间】:2015-04-17 12:45:35
【问题描述】:
我对 C 比较陌生,所以不太熟悉它的语法,但是我已经调试了我的代码并研究了正确的语法,这似乎是正确的,我还更改了变量的范围以查看如果这是导致错误的原因。
if 语句应该比较两个变量,它们都包含字符串,我什至打印了两个变量以确保它们相同,但是它仍然直接跳到 if 语句的 else 部分。谁能给我任何关于为什么它不会运行 if 语句的指示,它只是直接跳到“不正确”。
correctWord 变量在代码的不同部分定义。
查找完整代码here。
-更新-
我现在已经更新了代码的语法,但是它仍然返回 false。
char correctWord[20];
void userGuess(){
char userWordGuess[20];
printf("Anagram: ");
printf(anagramWord);
printf("Your Guess: ");
scanf("%s",userWordGuess); //Reads in user input
printf(correctWord);
printf(userWordGuess);
if(strcmp(userWordGuess, correctWord) == 0){
printf("Congratulations, you guessed correctly!");
}else{
printf("Incorrect, try again or skip this question");
}
}
【问题讨论】:
-
使用
strcmp或strncmp比较字符串。 -
你没有设置correctWord的值。比较应该是 if (strcmp(userWordGuess, correctWord)==0) {...
-
correctWord 和 userWordGuess 是指针!它们代表您声明的两个 20 字节字符串的地址!因为你想比较字符串,所以解决方案正如 CoreyStup 所说的那样!
-
为什么投反对票?问题表达得好,问题清晰,相关代码展示,格式合理。
-
我也不明白反对票,我试图对这个问题非常公平和清楚,尽管codepad.org/EQoXktaS 仍然无法让它发挥作用
标签: c if-statement strcmp c-strings