C++编程判断输入的一串字符是否为回文
时间: 2023-12-10 13:03:12 浏览: 238
判断一个字符串是否为回文,可以分别从字符串的两端开始往中间比较。
C++代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string str) {
int len = str.length();
for (int i = 0; i < len/2; i++) {
if (str[i] != str[len-i-1]) {
return false;
}
}
return true;
}
int main() {
string str;
cout << "请输入一个字符串:";
cin >> str;
if (isPalindrome(str)) {
cout << "是回文" << endl;
} else {
cout << "不是回文" << endl;
}
return 0;
}
```
首先定义一个 `isPalindrome` 函数,它的参数是一个字符串,返回值是一个布尔类型,表示该字符串是否为回文。然后在主函数中读入一个字符串,调用 `isPalindrome` 函数进行判断。
相关问题
c++编程判断输入的一串字符是否为回文。所谓回文,是指顺读和倒读都一样的字符串,如:“leve1”, ABCCBA”。如果是回文,则输出1,不是回文,输出0. 输入\输出样例: 输入:1eve1 输出:1 输入:abcd 输出:0
在 C++ 中,我们可以使用双指针技术来判断一个字符串是否是回文。以下是简单的步骤:
1. 首先,我们需要获取用户输入的字符串。可以使用 `cin` 来接收用户的输入,并将其存储到一个字符串变量中。
```cpp
string str;
getline(cin, str); // 获取一行输入作为字符串
```
2. 初始化两个指针,一个指向字符串的开头(`begin()`),另一个指向结尾(`rbegin()`)。`rbegin()` 是 `reverse_iterator` 类型,它会从字符串末尾开始遍历。
```cpp
int left = 0;
int right = str.length() - 1;
```
3. 使用循环结构,当左指针小于右指针时继续比较:
```cpp
while (left < right) {
if (str[left] != str[right]) { // 如果当前字符不匹配
cout << "0"; // 打印0表示不是回文
return; // 结束程序
}
left++; // 左指针向右移动
right--; // 右指针向左移动
}
```
4. 当所有字符都匹配后,说明是回文,打印 "1":
```cpp
cout << "1";
```
完整的函数示例:
```cpp
#include <iostream>
#include <string>
int main() {
string str;
getline(cin, str);
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str[left] != str[right]) {
std::cout << "0";
return 0;
}
left++;
right--;
}
std::cout << "1";
return 0;
}
```
用C++编程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
可以使用双指针的思想,从字符串的两端开始比较字符是否相同。具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(char* str) {
int len = strlen(str);
int left = 0, right = len-1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
char str[100];
cin >> str;
if (isPalindrome(str)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
在主函数中,先读入字符串,然后调用`isPalindrome`函数判断是否为回文。在`isPalindrome`函数中,使用双指针从字符串两端开始比较字符是否相同,如果发现不同的字符,直接返回`false`表示不是回文。如果到最后都没有返回`false`,则说明是回文,返回`true`。
阅读全文