C++反向字符串递归

标签 c++ string recursion

<分区>

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

最佳答案

您缺少一个 { 和一个 } —— 没有它们,您的 else 子句就是那一行 string temp;

使用自动重排代码的编辑器可以帮助您看到这些东西。

关于C++反向字符串递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446706/

相关文章:

c++ - 断言失败 - 在 Unity-Xbox 上崩溃

java - Android中如何获取String中的一些字符

C:删除句子中的空格;抛出异常:写访问冲突

c++ - std::replace on std::string invalid operands to binary expression

javascript - 如何用ajax创建数组并在没有回调函数的情况下修改它?

c++ - 为什么带有初始值设定项示例的基于范围的 for 语句中 `f().items()` 错误

c++ - 等待 QLineEdit::onTextChanged 中输入的最后一个字符

c++ - 模板参数是否可以进行矩阵乘法

javascript - 解析完整的 json 并搜索与值匹配的键

c - 递归函数比较没有库函数的字符串