Как вы принимаете регистр без учета регистра и разрешаете внедренные пробелы во вход пользователя? Таким образом, пользователь может ввести «hong konG» и получить правильное совпадение с вводом.Как принимать входные регистры без учета регистра?
У меня есть только input[0] = toupper(input[0]);
, который принимается только в том случае, если регистр находится в начале слова.
while(true){
cout << "Enter a city by name: "<< " ";
std::getline (std::cin,input);
if (input == "quit")
{
break;
}
input[0] = toupper (input[0]);
//....how do I loop to find all letter's in the input string variable?
}
Если вы хотите сделать что-то несколько раз (например, в верхнем регистре каждый символ строки), вы пишете цикл. Поэтому напишите цикл, который использует toupper для каждого символа. Если бы вы показали немного больше своего кода, я мог бы, вероятно, показать вам, как это сделать. Нельзя работать с одной строкой кода. – john
И когда вы хотите написать цикл, вы понимаете, что для него существует более четкий алгоритм. Один для этого - 'std :: transform'. – chris
@chris Я старый таймер, но я никогда не обнаружил, что петли неясны. – john