设计一个能判断字符串是否是回文,多组数据且碰到stop就停止输入,每行输出都带有序号的c++代码
时间: 2024-10-08 15:22:36 浏览: 14
你可以使用C++编写一个简单的命令行程序来实现这个功能,这里是一个基本的示例,它读取用户输入的字符串并检查是否为回文。如果遇到 "stop" 就停止输入:
```cpp
#include <iostream>
#include <string>
#include <sstream>
bool isPalindrome(const std::string& str) {
std::string reversedStr = str;
std::transform(reversedStr.begin(), reversedStr.end(), reversedStr.begin(), ::tolower); // 转换为小写忽略大小写
std::istringstream iss(reversedStr);
std::string temp;
for (std::string::size_type i = 0; i < str.length() / 2 && iss >> temp; ++i) { // 只比较一半字符
if (str[i] != temp) {
return false;
}
}
return true;
}
int main() {
int sequence = 1;
std::string input;
while (getline(std::cin, input), input != "stop") {
if (isPalindrome(input)) {
std::cout << "第 " << sequence++ << " 个输入是回文: " << input << '\n';
} else {
std::cout << "第 " << sequence << " 个输入不是回文: " << input << '\n';
}
}
return 0;
}
```
在这个代码中,`isPalindrome` 函数用于检查输入的字符串是否是回文,而 `main` 函数则负责读取用户输入,并在每次循环结束后打印出结果。当你在命令行运行这个程序时,输入一行字符串直到输入 "stop"。