递归地反转传递引用字符串

时间:2016-03-31 16:42:57

标签: c++ recursion pass-by-reference reverse

我只是想澄清一点,我已经寻找其他指导,但没有任何帮助我的具体问题。我见过的所有这些都是通过char数组或常规变量传递的。所有解决方案只打印出反向形式而不实际更改变量。但正如我的标题所说,我需要帮助将字符串的变量更改为其反转形式。因此,我只是在寻找一些指导方针,而不是给出答案,因为我不会学到任何东西。我只是一个初学者,需要帮助。如果有人可以提供它将非常感激。

为了尝试完成此任务,我首先决定只是简单地递归打印字符串的反向形式。这是我的代码:

void reverse(string& word)
{
    int n = word.length();
    if (n == 1)
        cout << word << endl;
    else
    {
        cout << word[n - 1];
        string b = word.substr(0, n - 1);

        reverse(b);
    }
}

此代码有效。我已尝试将string b替换为word,并在调用reverse函数时将其放入word函数,但它只给string n = "random"; reverse(n); cout << n; 第一个字母我试图改变它的价值,因为当我在主函数中打印它时,它就是它给我的全部。

例如:

modnar

它应该给我r,但它只会在打印时给我 legend: { enabled: true, floating: true, y: -65 }, navigator: { margin: 50 } 。有人可以指导我如何将参考变量的值更改为它的反转形式吗?

0 个答案:

没有答案