В c программирование одинарных кавычек (т. Е. c) используется для символов, а двойных кавычек (т. Е. c) - для строк. В двойных кавычках последний символ равен NULL.
Примечание. Мы не можем хранить два символа в одинарных кавычках, например 'no'.
В вашем случае, во-первых, объявите ans как массив символов (т.е. строку) .
char ans[SIZE_AS_PER_REQUIREMENT];
Чтобы получить входные данные ,
scanf("%s",ans);
Для улучшения взаимодействия с пользователем перед вводом введите правильное сообщение для пользователя.
printf("\n Do you want to continue(yes/no)?");
Теперь, чтобы сравнить ответ пользователя с условием программы, у нас есть C -языковая строковая библиотека (то есть string.h ), включите ее перед использованием любой встроенной строковой функции C -языкового языка.
#include <string.h>
и использовать любую из строковых функций strcmp или stricmp согласно требованию. Здесь я собираюсь использовать stricmp , поскольку возможно, что пользователь может ввести «нет» / «нет» / «нет». stricmp игнорирует регистр.
stricmp(string1,string2)
Возвращает
- Отрицательное число, если string1 меньше string2
- Ноль, если string1 эквивалентно string2
- Положительное число, если строка1 больше, чем строка2
Итак, в нашем случае мы проверяем на ноль.
См. Программу ниже, я только что добавил их в ваш код.
#include <stdio.h>
#include <string.h>
int main() {
int age, i;
char ans[5];//declare ans as character array
for (i = 0; i < 3; i++) {
printf("\n enter your age:");
scanf("%d", &age);
if (age > 18) {
printf("your age is %d, you are allowed to enter", age);
} else if (age == 18) {
printf("I don't know what to do with you");
} else {
printf("your age is %d, you are not allowed to go in", age);
}
printf("\n Do you want to continue(yes/no)?");
scanf("%s",ans);//take input as string in ans, its character array
if (stricmp(ans,"no") == 0) { // 0 means both are equal
break;
} else {
continue;
}
}
return 0;
}