【发布时间】:2014-02-22 04:16:48
【问题描述】:
我正在尝试递归地反转一个字符串。如果str1 == "hello",我希望str1 变成"olleh"。
在我的递归函数中,我试图将第一个字符复制到一个临时变量中,递归地传递字符串并将临时变量的内容附加到返回字符串的末尾。到目前为止,这是我的代码,
# include <iostream>
# include <string.h>
using namespace std;
string string_reverse(string) ;
int main ()
{
string str1 = "hello";
cout << string_reverse(str1) << endl;
return 0;
}
string string_reverse(string str1)
{
if (str1.length() == 1)
{ return str1;}
else
string temp;
temp.assign(str1, 0, 1);
str1.erase(0, 1);
string_reverse(str1);
return str1.append(temp);
}
但是,我收到一条错误消息,提示 temp 未在范围内声明。
【问题讨论】:
-
如果您使用自动缩进代码的编辑器,您可能会立即发现问题。