C语言,递归实现字符串逆序
时间: 2024-10-21 17:01:09 浏览: 78
在C语言中,我们可以使用递归来实现字符串逆序。递归是一种函数调用自己的技术,这里我们创建一个函数,该函数接收一个指针作为参数,并通过交换字符位置实现字符串反转。以下是简单的递归函数示例:
```c
#include <stdio.h>
#include <string.h>
// 递归函数,传入的是字符串的头和尾指针
void reverse(char *start, char *end) {
if (start >= end) { // 递归结束条件:当头指针大于等于尾指针时,表示已经到达字符串中间或结尾
return;
}
// 交换头尾字符
char temp = *start;
*start = *end;
*end = temp;
// 继续递归处理剩余部分
reverse(start + 1, end - 1); // 遍历到下一个字符
}
int main() {
char str[] = "Hello, World!";
int len = strlen(str);
char reversed[len]; // 用于存储结果
// 保存原字符串
memcpy(reversed, str, len);
// 反转字符串并打印
reverse(str, str + len - 1); // 尾部指针指向字符串末尾
printf("Reversed string: %s\n", reversed);
return 0;
}
```
运行这个程序,你会看到原始字符串"Hello, World!"被逆序成 "!dlroW ,olleH"。
阅读全文