编写递归函数实现串反向
时间: 2024-06-14 19:03:21 浏览: 90
以下是使用递归函数实现串反向的Python代码:
```python
def reverse_str(s):
if len(s) == 0:
return s
else:
return reverse_str(s[1:]) + s[0]
# 示例
s = "hello world"
print(reverse_str(s)) # 输出:dlrow olleh
```
以上代码中,`reverse_str`函数使用递归的方式实现了字符串反向输出。函数首先判断字符串是否为空,如果为空则直接返回该字符串。否则,函数将字符串的第一个字符与剩余部分分离,然后将剩余部分递归传入函数中,最后将第一个字符与递归结果拼接起来返回。
相关问题
请用编写递归函数,反向输出字符串。
我可以回答你的问题。这是一个经典的递归问题,可以使用一个简单的递归函数来解决。下面是一个示例代码:
```
void ReverseString(char* str) {
if (*str) {
ReverseString(str + 1);
printf("%c", *str);
}
}
```
这个函数递归地调用自己,每次将字符串指针向后移动一位,直到找到字符串的末尾。然后,它开始向前输出每个字符,直到字符串的开头。要调用这个函数,请将字符串作为参数传递给它:
```
char str[] = "Hello world!";
ReverseString(str);
```
这将反向输出字符串 "Hello world!",输出结果为 "!dlrow olleH"。
编写一个函数 reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列,不是逆序打印。 要求:不能使用C函数库中的字符串操作函数。
```c
void reverse_string(char * string) {
if (*string == '\0') { // 递归终止条件
return;
}
reverse_string(string + 1); // 递归调用
putchar(*string); // 输出当前字符
}
```
使用方法:
```c
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("反向排列后的字符串为:");
reverse_string(str);
```
阅读全文