Я довольно новичок в C, поэтому я не слишком знаком с его синтаксисом, однако я отлаживал свой код и исследовал его для правильного синтаксиса, и это кажется правильным, я также изменил масштаб переменных, чтобы увидеть, вызвало ли это ошибку.Если оператор в C всегда возвращает false
Оператор if должен сравнивать две переменные, которые содержат строки, я даже напечатал обе переменные, чтобы убедиться, что они одинаковы, однако он все равно переходит прямо в раздел else инструкции if. Может ли кто-нибудь дать мне какие-либо указания на то, почему он не будет запускать оператор if, он просто переходит прямо к «неправильному».
Переменная correctWord
определяется в другом разделе кода.
Найти полный код here.
-UPDATE-
я теперь обновил синтаксис кода, однако он по-прежнему возвращается ложью.
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 говорит вам! –