Я пытаюсь получить программу, позволяющую пользователю вводить слово или символ, сохранять его, а затем распечатывать, пока пользователь не введет его снова, выйдя из программы. Мой код выглядит так:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
Проблема в том, что я продолжаю получать печать входной строки, даже когда ввод пользователя (чек) совпадает с оригиналом (ввод). Я сравниваю два неправильно?
strcmp()
возвращает ноль, когда его входные значения равны», объясняет, как сравнивать строки на равенство, неравенство, меньше, больше, меньше или равно и больше или равно. Не все сравнения строк для равенства. Чувствительные к регистру сравнения снова отличаются; другие специальные сравнения (например, порядок словаря) требуют более специализированных компараторов, и для еще более сложных сравнений существуют регулярные выражения.
gets()
стоит. Он также был удален из стандарта с C11 -> Пожалуйста, прочтите Почему функция gets настолько опасна, что ее не следует использовать?
gets( )
был удален из стандарта. Используйтеfgets( )
вместо этого.