c语言用递归函数实现输出回文字符串
时间: 2024-12-24 18:17:30 浏览: 6
在C语言中,递归函数可以巧妙地用于检查并输出回文字符串。回文字符串是指正读反读都一样的字符串,例如"madam"、"racecar"等。下面是一个简单的例子,展示了如何使用递归函数来判断和打印回文字符串:
```c
#include <stdio.h>
#include <string.h>
// 递归函数,判断输入字符串是否为回文
int isPalindrome(char str[], int start, int end) {
// 基线条件:如果起始位置大于等于结束位置,那么就是回文
if (start >= end)
return 1;
// 检查当前位置的字符是否等于对称位置的字符
if (str[start] != str[end])
return 0;
// 如果当前字符相等,继续递归检查下一个字符
return isPalindrome(str, start + 1, end - 1);
}
// 主函数,用于测试并打印回文字符串
void printPalindrome(char* str) {
if (isPalindrome(str, 0, strlen(str) - 1)) {
printf("'%s' is a palindrome.\n", str);
printf("Palindrome string: %s\n", str); // 只打印一次回文字符串
} else {
printf("'%s' is not a palindrome.\n", str);
}
}
int main() {
char test[] = "radar";
printPalindrome(test);
return 0;
}
```
在这个示例中,`isPalindrome` 函数会从字符串的两端向中间比较字符,如果发现不匹配,则立即返回 false。当所有字符都匹配时,说明是回文,返回 true。`printPalindrome` 函数则负责调用这个递归函数,并根据结果输出相应的信息。
阅读全文