用c语言判断字符串是否为回文
时间: 2024-10-05 18:04:06 浏览: 45
在C语言中,判断一个字符串是否是回文可以采用双指针法,即从两端开始向中间遍历,同时比较对应位置的字符是否相等。以下是简单的步骤:
1. 定义两个指针,一个指向字符串的开始(`start`),另一个指向结束(`end`)。
2. 循环条件通常是 `start < end`,当这两个指针相遇或者发现有不相等的字符时,说明不是回文,返回false。
3. 每次循环都检查当前的 `start` 和 `end` 对应的字符是否相等,如果相等,则分别将它们向中间移动一位(`start++`, `end--`);如果不相等,直接返回 false。
4. 如果整个过程都没有找到不相等的字符,那么原始字符串就是一个回文,返回true。
下面是一个简单的示例代码:
```c
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return false;
}
start++;
end--;
}
return true;
}
// 示例用法
int main() {
char test[] = "madam";
if (isPalindrome(test)) {
printf("'%s' 是回文\n", test);
} else {
printf("'%s' 不是回文\n", test);
}
return 0;
}
```
阅读全文