C ++: распознавать строчные буквы как правильные, когда они хранятся как прописные? - PullRequest
1 голос
/ 09 февраля 2012

У меня есть 1d массив правильных ответов, но они хранятся в верхнем регистре в текстовом файле.Я хочу принять участие пользователя, но если он отвечает в нижнем регистре, я хочу, чтобы программа приняла его ответ в нижнем или верхнем регистре.я на правильном пути?Кроме того, мой тест, если его действительный ответ (реклама или AD) не сработал ... Есть ли что-то еще, что я мог бы попробовать?

1 Ответ

2 голосов
/ 09 февраля 2012

Ваш тест на правильный выбор не работает, потому что || работает не так. Что вам нужно, это что-то вроде:

while (user_guess != "a" && user_guess != "b" && user_guess != "c" && user_guess != "d"
       user_guess != "A" && user_guess != "B" && user_guess != "C" && user_guess != "D") {

Кроме того, нет никакого вреда при вызове toupper() для чего-то, что не является символом нижнего регистра. Так что вы можете просто сделать:

if (toupper(user_guess) != answers[x]) {

Если вы преобразуете user_guess в верхний регистр сразу после того, как прочитаете его из cin, тогда вы можете сократить тест «правильное предположение» (только проверяя ответы в верхнем регистре) и пропустить toupper() из теста против answers[x].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...