C 反向字符串递归

C++ reverse string recursion

本文关键字:递归 字符串      更新时间:2023-10-16

我正在尝试递归逆转字符串。如果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在范围内没有声明。

您缺少{}-没有它们,您的其他条款只是一行string temp;

使用自动反弹代码的编辑器可以帮助您看到此类内容。

您需要else子句周围的卷发。