字符串回文判断 C语言
时间: 2024-10-26 20:02:14 浏览: 19
C语言判断回文字符串代码.rar
5星 · 资源好评率100%
在C语言中,字符串回文判断是指检查一个字符串是否从前往后读和从后往前读是一样的,也就是常说的“正读反读都一样”。这里我们可以采用两种常见方法:
1. **双指针法**:
使用两个指针,一个指向字符串的开始(`str[0]`),另一个指向结束(`str[strlen(str)-1]`)。然后逐次比较这两个指针所指的字符,如果相等则继续向中间移动,直到两个指针相遇或找到不相等的字符。若整个过程都未找到不相等的字符,则该字符串是回文。
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0; // 回文不是,直接返回非0值
}
start++;
end--;
}
return 1; // 所有字符都匹配,是回文
}
int main() {
char str[] = "madam";
if (isPalindrome(str)) {
printf("%s 是回文\n", str);
} else {
printf("%s 不是回文\n", str);
}
return 0;
}
```
2. **递归法**:
这种方法通过递归地检查字符串的第一个字符和最后一个字符,然后去掉首尾后再次检查,直到字符串长度小于等于1为止。
```c
#include <stdbool.h>
#include <string.h>
bool isPalindromeRec(char* str, int start, int end) {
if (start >= end) {
return true;
}
if (str[start] != str[end]) {
return false;
}
return isPalindromeRec(str, start + 1, end - 1);
}
// 主函数同上
```
阅读全文