C语言用递归将输入的字符串按与输入相反的顺序输出
时间: 2024-05-08 08:18:07 浏览: 18
可以使用递归函数,每次将字符串的第一个字符输出,再将剩余部分传递给下一层递归函数继续处理,直到字符串为空。以下是示例代码:
```c
#include <stdio.h>
void reverse(char *str) {
if (*str) {
reverse(str + 1);
putchar(*str);
}
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("逆序输出为:");
reverse(str);
return 0;
}
```
对于输入"hello",输出为"olleh"。
相关问题
C语言编写一个程序,通过递归方法以相反的顺序输出输入字符串
好的,下面是一个简单的 C 语言程序实现你的要求:
```c
#include <stdio.h>
void print_reverse(char *str) {
if (*str != '\0') {
print_reverse(str + 1);
printf("%c", *str);
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("相反顺序输出的字符串为:");
print_reverse(str);
printf("\n");
return 0;
}
```
程序中使用了递归方法来以相反的顺序输出输入的字符串。具体实现是:如果字符串的第一个字符不是空字符 '\0',则调用函数自身并传入字符串的下一个字符的地址,输出当前字符。这样就可以实现递归输出字符串的相反顺序。
在主函数中,首先接收输入的字符串,然后调用函数 `print_reverse` 输出相反顺序的字符串。
需要注意的是,递归方法可能会在处理较长字符串时出现栈溢出的问题,因此需要根据具体情况选择合适的方法来输出字符串的相反顺序。
希望这个程序能够帮助到你!
C语言利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
可以使用递归函数来实现将输入的5个字符以相反顺序打印出来的功能。以下是一个示例代码:
```c
#include <stdio.h>
void printReverse(char str[], int length) {
if (length == 0) {
return;
}
printf("%c", str[length - 1]);
printReverse(str, length - 1);
}
int main() {
char str[5];
printf("请输入5个字符:");
scanf("%s", str);
printReverse(str, 5);
return 0;
}
```
在这个代码中,`printReverse` 函数使用递归的方式将字符串以相反顺序打印出来。首先判断字符串长度是否为0,如果是,则递归结束;否则,打印最后一个字符并调用自身,传入字符串和长度减1的参数。通过这种方式,每次递归都会打印字符串的最后一个字符,直到打印完所有字符为止。
在 `main` 函数中,我们首先声明一个字符数组 `str`,用于存储输入的5个字符。然后通过 `scanf` 函数获取用户输入的字符串。接下来,调用 `printReverse` 函数并传入字符串和长度5作为参数,实现字符串的相反顺序打印。
运行该程序后,用户需要输入5个字符,然后程序会将这5个字符以相反顺序打印出来。