2015-06-18 2 views
0

Я хотел создать пример кода, который запрашивает у пользователя «секретный» код. У пользователя 5 попыток ввести правильную (секретную) фразу, если пользователь терпит неудачу, программа закрывается. Я все сделал, у меня просто одна проблема. Если пользователь вводит секретную фразу заглавными буквами, программа интерпретирует ее как неправильную. Я видел некоторые методы конверсии, но никто не работал. Вот код, который у меня есть на данный момент. Мне нужно только преобразовать вход в нижний регистр:Преобразование ввода C++ в нижний регистр для игнорирования слов, написанных в верхнем регистре

int nextReveal(){ 
std::string code; 
std::string answer = "sample"; 
for (int i = 1; i <= 5; i++){ 

    //std::cout << " " << std::endl; 
    std::cout << "Type in the secret password" << std::endl; 
    std::cin >> code; 
    int tries = 5 - i; 
    if (code != answer && code != answer2 && code != answer3){ 
     std::cout << "You have " << tries << " tries left before program self-destructs" << std::endl; 
     if (tries == 0){ 
      std::cout << " You have used up all your tries. Program is closing" << std::endl; 
      return 1; 

     } 

    } 

    else if (code == answer){ 
     std::cout << "Unlocked" << std::endl; 
     //i = 6; 
     return 0; 
    } 

    } 


} 
+0

также [здесь] (https://stackoverflow.com/questions/23943728/case-insensitive-standard-string-comparison-in-c) и [здесь] (https://stackoverflow.com/questions/9182912/нечувствительны к регистру строка-сравнение-с) – CoryKramer

ответ

0

Ваш лучший подход будет заключаться в использовании метода tolower(). В C++ в заголовке существует шаблонная версия этой функции (tolower).

Смежные вопросы