<分区>
我正在尝试递归地反转字符串。如果 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
未在范围内声明。