用指针实现回文判断
时间: 2024-02-22 14:56:13 浏览: 15
回文判断可以使用指针来实现。具体步骤如下:
1. 定义一个指向字符串的指针p,指向字符串的首地址。
2. 定义一个指向字符串的指针q,指向字符串的尾地址。
3. 分别移动指针p和指针q,如果它们指向的字符不相同,则字符串不是回文。
4. 如果它们指向的字符相同,则继续移动指针p和指针q,直到它们相遇或者p指针超过q指针。
下面是使用指针实现回文判断的示例代码:
```
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(char* str) {
int len = strlen(str);
char* p = str;
char* q = str + len - 1;
while (p < q) {
if (*p != *q) {
return false;
}
p++;
q--;
}
return true;
}
int main() {
char str[] = "racecar";
if (isPalindrome(str)) {
cout << "This string is a palindrome." << endl;
} else {
cout << "This string is not a palindrome." << endl;
}
return 0;
}
```
在这个示例中,我们使用指针p和q来遍历字符串,比较它们指向的字符是否相同。如果存在不相同的字符,则返回false,表示这个字符串不是回文。如果遍历结束后都没有返回false,则说明这个字符串是回文。