我是相當新的C,所以我不是太熟悉它的語法,但是我已經調試我的代碼,並研究正確的語法,這似乎是正確的,我也改變了變量的範圍以查看是否導致錯誤。如果用C語句總是返回false
if語句應該比較兩個變量,既保持琴絃,我甚至都印變量,以確保它們是相同的,但它仍然是跳過直奔if語句的其他部分。任何人都可以給我指出爲什麼它不會運行if語句,它只是直接跳到'不正確'。
的correctWord
變量在代碼中的一個不同的部分中定義。
找到完整的代碼here。
-UPDATE-
現在我已經更新了代碼的語法,但它仍然是返回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'來比較字符串。 – ouah
您不設置correctWord的值。比較應該是(strcmp(userWordGuess,correctWord)== 0){... – CoreyStup
correctWord和userWordGuess是指針!它們代表您聲明的兩個20字節字符串的地址!因爲你想比較字符串,所以解決方案就像CoreyStup說的那樣! –