倒序问题:编写函数void reverse(string &s),用递归算法实现字符串s倒序,并编写主函数完成输入输出。
时间: 2025-02-12 21:28:23 浏览: 54
递归法实现字符串反转是一个经典的编程练习。下面是一个用 C++ 实现的例子:
```cpp
#include <iostream>
#include <string>
// 递归函数,接收引用类型的字符串作为参数
void reverseStringRecursion(std::string &s, int start = 0) {
// 递归基本情况:当起始索引大于等于字符串长度的一半时,返回,停止递归
if (start >= s.length() / 2) {
return;
}
// 交换起始位置和结束位置的字符,然后继续递归处理剩余部分
char temp = s[start];
s[start] = s[s.length() - 1 - start]; // 或者直接 s[start] = s.back(); 利用 back() 函数
s[s.length() - 1 - start] = temp;
// 递归调用自身,更新起始索引
reverseStringRecursion(s, start + 1);
}
// 主函数,用于接收用户输入并调用递归函数
int main() {
std::string input;
std::cout << "请输入一个字符串: ";
getline(std::cin, input); // 使用 getline 获取包括空格的完整行
// 调用 reverseStringRecursion 函数
reverseStringRecursion(input);
std::cout << "反转后的字符串: " << input << std::endl;
return 0;
}
```
当你运行这个程序时,它会提示你输入一个字符串,然后输出其倒序版本。注意,递归操作可能会因为字符串太长而导致栈溢出,所以在实际应用中需要考虑这种情况。
阅读全文
相关推荐


















