试图暂时将整个字符串转换为小写字母并删除空格
问题描述:
所以我的程序是一个回文检查函数,它只使用字符串库和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;
}
答
如何像这样
std::string inputString = "WhatEver", cleanString;
for (char & c : inputString)
if (c != ' ')
cleanString += std::tolower(static_cast<unsigned char>(c));
的std :: tolower将是不确定的,如果字符值不能表示为无符号字符,所以要转换。
检查[This](https://stackoverflow.com/questions/20326356/how-to-remove-all-the-occurrences-of-a-char-in-c-string)。有'std :: reverse',所以你不必写它。我认为你可以使用所有你想要的'std' – lakeweb
你是什么意思的“我只找到答案...创造新的功能”?你是不是想写功能? – PhotometricStereo
这是一个家庭作业问题,还是一个愚蠢的在线测验网站的问题,没有人真正在意? –