所以我的程序是一个只使用字符串库和C ++ sting对象的回文检查功能。为了检查用户输入的字符串是否是回文,我需要将整个字符串转换为小写并删除空格以检查字符串及其反向是否相等。我试过查找解决方案,但我只找到了使用不同库和创建新功能的答案。这是我到目前为止的代码。
#include <iostream>
#include <string>
using namespace std;
string checkPalin();
int main()
{
string result = checkPalin();
cout << "The palindromes are: " << result;
}
string checkPalin()
{
int stringNum, time = 0;
string list;
string str1;
string reverse;
cout << "How many strings? " << endl;
cin >> stringNum;
cout << "Enter the strings: " << endl;
do
{
getline(cin, str1);
int size = str1.length();
for (int i = size - 1; i >= 0; i--)
reverse += str1[i];
if ((str1.compare(reverse)) == 0)
{
list += str1;
}
time++;
} while (time <= stringNum);
return list;
}
答案 0 :(得分:0)
这样的事情
std::string inputString = "WhatEver", cleanString;
for (char & c : inputString)
if (c != ' ')
cleanString += std::tolower(static_cast<unsigned char>(c));
如果char值不能表示为unsigned char,那么std :: tolower是未定义的,因此是强制转换。