c++编写程序,判断键盘输入的一个字符串是否是回文字符串,并输出判断结果。
时间: 2023-06-21 12:16:09 浏览: 231
好的,以下是C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string s) {
int left = 0, right = s.length() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
string s;
cout << "请输入一个字符串:" << endl;
cin >> s;
if (isPalindrome(s)) {
cout << "是回文字符串" << endl;
} else {
cout << "不是回文字符串" << endl;
}
return 0;
}
```
程序先输入一个字符串,然后调用 `isPalindrome` 函数判断是否是回文字符串,最后输出判断结果。`isPalindrome` 函数使用双指针法判断字符串是否回文,时间复杂度为 O(n)。
相关问题
用C++写程序从键盘输入一个字符串后,判断输入的是否是回文,若是,则在屏幕上输出“YES”,否则输出“NO”。回文即正序和逆序相同的字符串。
在C++中,要编写一个程序来判断输入的字符串是否是回文,可以通过以下步骤实现:
1. 获取用户输入的字符串。
2. 从字符串的两端开始,向中间比较字符,如果所有对应的字符都相同,则为回文。
3. 如果在比较过程中发现有不匹配的字符,则不是回文。
4. 输出判断结果。
下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm> // 用于std::reverse
int main() {
std::string input;
std::cout << "请输入一个字符串: ";
std::getline(std::cin, input); // 获取一行输入
// 创建一个字符串的副本,并反转它
std::string reversed = input;
std::reverse(reversed.begin(), reversed.end());
// 判断原字符串和反转后的字符串是否相同
if(input == reversed) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
return 0;
}
```
这段代码首先提示用户输入一个字符串,然后使用`std::getline`函数读取整行输入。接着使用`std::reverse`函数将字符串反转,并比较原字符串与反转后的字符串是否相同。如果它们相同,程序输出“YES”;如果不同,则输出“NO”。
编写程序,从键盘输入一个字符串,判断其是不是回文,若是则输出"YES",否则输出"NO"。(回文是指字符串正向、反向的拼写都一样。例“abcba"、"bbbb”是回文,"abc"、"bag"不是回文)。
当然,我们可以使用C++编写一个简单的程序来完成这个任务。首先,我们需要读取用户的输入,然后检查输入的字符串是否与其反转后相同。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(const std::string& str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
if (str[start] != str[end]) {
return false; // 如果任意一对字符不匹配,就不是回文
}
start++;
end--;
}
return true; // 如果所有字符都匹配,那么它是回文
}
int main() {
std::string input;
std::cout << "Enter a string: ";
std::getline(std::cin, input);
if (isPalindrome(input)) {
std::cout << "YES";
} else {
std::cout << "NO";
}
return 0;
}
```
在这个程序中,`isPalindrome`函数接收一个字符串并使用两个指针,一个指向开始,一个指向结束,逐个比较字符。如果发现有不匹配的,立即返回`false`。当所有字符都检查过后,如果没有找到不匹配的,就返回`true`,表示输入的是回文。
阅读全文