c++判断字符串是否为回文用指针
时间: 2023-08-06 08:05:46 浏览: 112
is_palindrom.rar_数值算法/人工智能_C/C++_
可以使用指针来判断一个字符串是否为回文,具体方法如下:
1. 定义两个指针:p1 和 p2,p1 指向字符串首字符,p2 指向字符串尾字符。
2. 循环判断:如果 p1 指向的字符等于 p2 指向的字符,就将 p1 指向下一个字符,将 p2 指向前一个字符,继续比较;如果不相等,说明不是回文,直接返回 false。
3. 循环结束后,如果一直都相等,说明是回文,返回 true。
下面是示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(const char* str) {
int len = strlen(str);
const char* p1 = str;
const char* p2 = str + len - 1;
while (p1 < p2) {
if (*p1 != *p2) {
return false;
}
p1++;
p2--;
}
return true;
}
int main() {
char str[100];
cin >> str;
if (isPalindrome(str)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
需要注意的是,在使用指针的时候要确保指针不会越界,因此需要先计算字符串的长度,并且在比较字符时要使用指针指向的值,而不是指针本身。
阅读全文