编写一个递归函数reverse(s),以将字符串s转置
时间: 2023-11-23 11:58:07 浏览: 207
以下是一个递归函数reverse(s)的实现,可以将字符串s转置:
```c
void reverse(char *s, int left, int right) {
if (left >= right) {
return;
}
char temp = s[left];
s[left] = s[right];
s[right] = temp;
reverse(s, left + 1, right - 1);
}
```
该函数接受三个参数,分别是字符串s、左边界left和右边界right。函数首先判断左右边界是否相遇,如果相遇则直接返回;否则交换左右边界对应的字符,并将左右边界向中间移动一位,递归调用reverse函数。在主函数中,我们可以调用该函数来实现字符串的转置:
```c
int main() {
char s[] = "I want eat fish!";
reverse(s, 0, strlen(s) - 1);
printf("%s\n", s); // 输出:!hsif tae tnaw I
return 0;
}
```
相关问题
编写字符串反转的递归函数
以下是Python编写的字符串反转的递归函数:
```python
def reverse_string(s):
if len(s) == 0:
return s
else:
return reverse_string(s[1:]) + s[0]
```
该函数接受一个字符串作为参数,并使用递归来反转该字符串。如果字符串为空,函数返回空字符串。否则,函数将字符串的第一个字符与剩余的字符交换顺序,然后递归地调用函数以反转其余的字符。最终,函数将反转后的字符串作为输出返回。
阅读全文