c语言编写函数 R_reverse,通过递归调用实现字符串的导致反转
时间: 2024-02-28 14:55:41 浏览: 72
好的,下面是函数的代码实现:
```c
#include <stdio.h>
#include <string.h>
void R_reverse(char *str, int start, int end) {
if (start >= end) {
return;
}
char temp = str[start];
str[start] = str[end];
str[end] = temp;
R_reverse(str, start + 1, end - 1);
}
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
str[strcspn(str, "\n")] = '\0'; // 去除 fgets 自带的换行符
R_reverse(str, 0, strlen(str) - 1);
printf("反转后的字符串为:%s\n", str);
return 0;
}
```
函数接收三个参数:字符串指针 `str`、开头下标 `start` 和结尾下标 `end`,其中 `start` 初始值为 0,`end` 初始值为 `strlen(str) - 1`。
函数内部实现首先判断 `start` 是否大于等于 `end`,如果是则直接返回,结束递归。否则,交换 `str[start]` 和 `str[end]` 的值,然后递归调用 `R_reverse` 函数,`start` 加 1,`end` 减 1。
最后在 `main` 函数中通过 `fgets` 获取用户输入的字符串,并去除自带的换行符,调用 `R_reverse` 函数实现字符串反转。
阅读全文