#include<iostream>
#include<string>
using namespace std;
int main()
{
string str1;
int is_palindrome = 1;
cout << "请输入内容:" << endl;
getline(cin, str1); //因为cin遇到空格或回车就停止,此处为string所以用getline(cin,str1)。若为数组用cin.get(数组名,长度)
for (int len = 0; len < str1.size(); len++) //将所有非字母字符滤去
{
if (str1[len] >= 65 && str1[len] <= 90 || str1[len] >= 97 && str1[len] <= 122) //判断字符是否为字母
continue;
else if (str1[len] == ' ')
{
str1.erase(len, 1);
len--;
}
else
{
str1.erase(len, 1); //删除非字母字符
len -= 1;
}
}cout << str1;
for (int i = 0; i < str1.size(); i++)
{
if (str1[i] < 122 && str1[i]>97) //小写转大写
{
str1[i] = str1[i] - 32;
}
}
for (int i1 = 0; i1 < str1.size(); i1++) //判断是否字母相同
{
if (str1[i1] != str1[str1.size() - 1 - i1])
{
is_palindrome = 0;
break;
}
}
if (is_palindrome)
cout << "这是回文" << endl;
else
cout << "这不是回文" << endl;
return 0;
}
125上机3
最新推荐文章于 2025-12-04 22:55:08 发布
本文介绍了一个使用 C++ 编写的简单程序,该程序能够从用户输入中过滤掉非字母字符,并忽略大小写来判断输入内容是否为回文。通过逐字符比较,实现了对回文字符串的有效识别。
105

被折叠的 条评论
为什么被折叠?



