Я новичок в C и имею проблемы с программой ниже. Он спрашивает людей, хорошо они или нет, и соответственно отображает сообщение. До сих пор я пробовал использовать !strcmp
, strcmp
и strncmp
, и ни один не возвращает положительное значение для if
, все пропускают к заявлению else
. Может ли кто-нибудь указать мне, где я ошибаюсь, поскольку синтаксис кажется мне прекрасным.Strcmp in C Не работает
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
char well[3];
printf("Hello, are you well today? (Yes/No) ");
scanf_s ("%s",well);
if (!strcmp(well,"Yes")){
printf("Glad to hear it, so am I\n");
}
else{
printf("Sorry to hear that, I hope your day gets better\n");
}
system("PAUSE");
return 0;
}
Большое спасибо всем за ответы, к сожалению, ни один из них, похоже, не работает. Присвоение 4 для учета нулевого значения не имеет значения. Вызов scanf, а не scanf_s, приводит к нарушению доступа (что является нечетным, так как остальная часть программы использует plain scanf. Добавление параметра «4» в scanf_s также не имеет значения. Действительно, разрывая мои волосы здесь, я рад разместить null в конце строки, но программа, похоже, не распознает ее.
'strcmp' _does_ хорошо работает. Убедитесь, что вы используете его правильно. – vonbrand