用c++编写函数reverse(char *s)的倒序递归程序,使字符串s倒序。
时间: 2024-10-29 16:14:30 浏览: 42
在 C++ 中,你可以通过递归的方式实现字符串反转。这里是一个简单的递归函数 `reverse` 的例子:
```cpp
#include <iostream>
using namespace std;
// 递归函数,接收指向字符串起始位置的指针
void reverse(char* start, char* end) {
// 递归终止条件:当start超过end时,表示已经到达字符串中心,退出递归
if (start >= end)
return;
// 交换当前字符和末尾字符
char temp = *start;
*start = *end;
*end = temp;
// 继续递归处理剩余部分
reverse(start + 1, end - 1);
}
// 主函数演示如何使用
int main() {
char s[] = "Hello, World!";
int len = strlen(s); // 获取字符串长度
cout << "Original string: " << s << endl;
reverse(s, s + len - 1); // 反转字符串
cout << "Reversed string: " << s << endl;
return 0;
}
```
这个程序首先计算字符串的长度,然后从两端开始逐个字符地交换,直到相遇。请注意,由于递归操作可能会导致栈溢出对于非常长的字符串,所以实际应用中通常会考虑非递归的方式来实现。
阅读全文