编写一个递归函数reverse(s),以将字符串s转置
时间: 2023-11-23 14:58:07 浏览: 201
使用递归来翻转字符串
3星 · 编辑精心推荐
以下是一个递归函数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;
}
```
阅读全文