Когда я передаю один из символов, которые я указал, он возвращает 2
, как если бы это был неправильный символ? Я сравниваю их неправильно?Сравнение символов в C?
int valid_character(char character) {
if (character == '*' || character == '%' || character == '#') {
return 1;
} else {
return 2;
}
}
редактировать:
Проблема заключается в том, где я вызываю функцию:
if (selection == 1) {
printf("Enter character, width and length: ");
scanf("%c %d %d", &c, &width, &length);
putchar(c);
int response = valid_character(c);
if (response == 1) {
draw_rectangle(width, length, c);
} else {
printf("%d", response);
printf("Invalid data provided.");
}
}
Когда я называю putchar(c);
он печатает 1
хотя я проходящее в %
Почему это?
Почему он вернется 2? – Jenny
Может быть что-то странное в вашем вызове valid_character ... post тоже? это отлично работает для меня ... – 22degrees
Вы уверены, что проходите мимо одного из этих персонажей? Попробуйте вызвать его напрямую и передайте его '' * '', а затем напечатайте возвращаемое значение. Это должно быть «1». –