Привет, это мой код для программы палиндрома:
void palindrome()
{
string input;
bool checkInput, palindrome;
palindrome = true;
do
{
checkInput = false;
cout << "Enter a word, phrase or sentence :\n";
getline(cin, input);
for (unsigned int i = 0; i < input.size(); i++)
{
if (input[i] < 65 || input[i] > 90 && input[i] < 97 || input[i] > 122)
{
checkInput = true;
}
}
} while (checkInput);
for (unsigned int i = 0, j = input.size() - 1; i < input.size(); i++, j--)
{
if (input[i] != input[j] && input[i] + 32 != input[j] && input[i] - 32 != input[j])
{
palindrome = false;
break;
}
}
if (palindrome)
{
cout << "\n\nTo consider only letters and digits:\n";
cout << input << "\nYes, it is palindrome!\n";
cout << "\t\t Press <Enter> key back to menu";
fflush(stdin);
cin.get();
}
else
{
cout << "\n\nTo consider only letters and digits:\n";
cout << input << "\nNOPE, it's not palindrome\n";
cout << "\t\t Press <Enter> key back to menu";
fflush(stdin);
cin.get();
}
}
и когда мой ввод - гоночная машина, он читает и говорит, что это палиндром, но когда мой ввод - гоночная машина (с пробелом), он не читает и говорит, что это не палиндром. Я намерен игнорировать все пробелы. Любая помощь будет высоко ценится! Заранее спасибо!
** отредактировано, поэтому я переключил свой ввод cin >> на getline (cin, input), и он не позволяет мне вводить мои слова или фразы
input[i] < 'A'
вместоinput[i] < 65
. - person Simon   schedule 17.03.2015isalnum
из<cctype>
вместо ручной проверки. - person martin   schedule 17.03.2015