Получить пустую строку после вызова функции Palindrome

Итак, у меня есть эти две функции в верхней части моей программы:

string deletespaces(string sentence){
sentence.erase(std::remove(sentence.begin(), sentence.end(), ' '), sentence.end());
return sentence;
}

а также

string checkpalindrome(string sentence){
deletespaces(sentence);
if (sentence == string(sentence.rbegin(), sentence.rend())){
cout << sentence << " is a palindrome." << endl;
}
if(sentence != string(sentence.rbegin(), sentence.rend())){
cout << sentence << " isn't a palindrome." << endl;
}
}

Это моя основная часть кода.

int main(){
int x = 1;
string originalsentence;

while (x == 1) {
int a = 1;
int input;
string sentence;
cout << "Press 1 to reverse a string, 2 to check a palindrome, and anything else to quit: ";
cin >> input;

if(input == 1) {
cout << "Enter a sentence to reverse: ";
cin.ignore();
getline(cin,originalsentence);
originalsentence = sentence;
cout << string(sentence.rbegin(), sentence.rend()) << endl;
}

if(input == 2) {
cout << "Enter a sentence to check: ";
cin.ignore();
getline(cin,originalsentence);
originalsentence = sentence;
checkpalindrome(sentence);
}

cout << "Hit 1 if you want to continue, anything else to quit: ";
cin >> x;
}
}

Итак, вот моя проблема. Я могу сделать выбор: отменить строку или проверить, является ли строка палиндромом. Однако, когда я пытаюсь перевернуть строку, она просто дает пустую строку, а затем спрашивает, хочу ли я продолжить. Когда я прошу проверить палиндром, он просто говорит «это палиндром» независимо от того, что я ввожу. Есть идеи?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]