c语言判断回文字符串递归
时间: 2024-10-25 09:00:41 浏览: 64
在C语言中,判断一个字符串是否是回文可以使用递归的方式实现。回文字符串是指正读和反读都一样的字符序列。递归函数的基本思路是将字符串分为两半,并检查它们是否相等。如果首尾字符相等,然后分别对去掉首尾字符后的子串递归地做同样的比较。
下面是一个简单的C语言递归函数示例:
```c
#include <stdio.h>
#include <string.h>
// 帮助函数,用于递归比较两个字符数组是否相同
int is_palindrome(char str[], int start, int end) {
// 基线条件:当只有一个字符或者没有剩余字符时,是回文
if (start >= end)
return 1;
// 如果首尾字符不相等,不是回文
if (str[start] != str[end])
return 0;
// 否则继续对子串进行递归比较
return is_palindrome(str, start + 1, end - 1);
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin); // 防止fgets读取换行符
str[strlen(str) - 1] = '\0'; // 清除 fgets 添加的换行符
if (is_palindrome(str, 0, strlen(str) - 1)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
阅读全文