解读下端代码#include<iostream> #include<string> using namespace std; void reverse(string &Str); int main() { string str; while(cin>>str) { reverse(str); cout<<str<<endl; } return 0; } void reverse(string &Str) { if(Str.length()<=1) { return; } string sub=Str.substr(1,Str.length()-2); reverse(sub); Str=Str[Str.length()-1]+sub+Str[0]; }
时间: 2024-01-19 20:04:22 浏览: 72
这段代码实现了对输入字符串的反转输出。下面是代码的解释:
```cpp
#include<iostream>
#include<string>
using namespace std;
// 函数声明,用于字符串反转
void reverse(string &Str);
int main() {
string str;
while(cin>>str) // 循环读入字符串
{
reverse(str); // 调用reverse函数进行反转
cout<<str<<endl; // 输出反转后的字符串
}
return 0;
}
// 字符串反转函数的实现
void reverse(string &Str) {
if(Str.length()<=1) // 如果字符串长度为0或1,直接返回
{
return;
}
string sub=Str.substr(1,Str.length()-2); // 获取除去首尾字符的子串
reverse(sub); // 对子串进行递归反转
Str=Str[Str.length()-1]+sub+Str[0]; // 将首尾字符拼接到反转后的子串上
}
```
在`main`函数中,我们通过循环读入字符串,然后调用`reverse`函数对其进行反转,并输出反转后的结果。
`reverse`函数的实现是通过递归实现字符串反转的。如果字符串长度为0或1,直接返回;否则,获取除去首尾字符的子串,对子串进行递归反转,最终将首尾字符拼接到反转后的子串上,得到最终的结果。
阅读全文