Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 需要我的反向输入递归程序的帮助吗_C++_String_Recursion_Reverse_Std - Fatal编程技术网

C++ 需要我的反向输入递归程序的帮助吗

C++ 需要我的反向输入递归程序的帮助吗,c++,string,recursion,reverse,std,C++,String,Recursion,Reverse,Std,可能重复: P>最近,我一直在为大家阅读C++,而且我一直很难把递归函数(混淆思考…)< /P> 问题是:编写一个递归函数stringreverse(stringstr),返回str 这就是我到目前为止所做的: string reverse(string str) { string word = ""; if (str.length() <= 1) { return str; } else { string

可能重复:

P>最近,我一直在为大家阅读C++,而且我一直很难把递归函数(混淆思考…)< /P> 问题是:编写一个递归函数
stringreverse(stringstr)
,返回
str

这就是我到目前为止所做的:

string reverse(string str)
{
    string word = "";

    if (str.length() <= 1)
    {
        return str;
    }
    else
    {
        string str_copy = str;
        int n = str_copy.length() - 1;
        string last_letter = str_copy.substr(n, 1);

        str_copy = str_copy.substr(0, n);
        word += reverse(str_copy);
        return last_letter;
    }
    return word;
}
字符串反转(字符串str)
{
字串=”;

如果(str.length()这将完成以下工作:

删除返回最后一封信

改变

word += reverse(str_copy);

我将把想法留给你


最好。

这将完成以下工作:

删除返回最后一封信

改变

word += reverse(str_copy);

我将把想法留给你


最好。

您需要返回最后一个字符(
最后一个字母
)和字符串其余部分的反转组合,但在任何尝试中都不会这样做。您只会返回一部分或另一部分

string reverse(string str)
{
    int len = str.length();
    if (len <= 1)
    {
        return str;
    }
    else
    {
        return str.substr(len-1, 1) + reverse( str.substr(0, len-1) );
    }
}
字符串反转(字符串str)
{
int len=str.length();

若(len您需要返回最后一个字符(
last_letter
)的组合和字符串其余部分的反转,但在任何尝试中都不会这样做。您只会返回一部分或另一部分

string reverse(string str)
{
    int len = str.length();
    if (len <= 1)
    {
        return str;
    }
    else
    {
        return str.substr(len-1, 1) + reverse( str.substr(0, len-1) );
    }
}
字符串反转(字符串str)
{
int len=str.length();

如果(len,这个问题与其他问题不同吗?看起来很相似。人们在45分钟后就不再回答了。这是一个错误的看法。如果你对给出的答案不满意,至少等半天。然后,你可以开始对同一个问题进行悬赏,而不是再次发布。嘿,因为45分钟过去了,所以重新发布。我哈哈,不.Repost'因为没有人发帖这个问题与之不同吗?看起来很相似。人们在45分钟后停止回答,这是一种错误的看法。如果你对给出的答案不满意,至少等待半天。然后,你可以开始对同一个问题进行奖励,而不是再次发帖。嘿,发帖是因为45分钟几分钟过去了。我lol'd.No.Repost'因为没有人因为一个错误而发帖——应该是
reverse(str.substr(0,len-1));
否则内部
reverse
与外部
reverse
具有相同的
str
。关闭一个错误——应该是
reverse(str.substr(0,len-1))
否则内部的
反转
与外部的
反转
具有相同的
str
。是的。它工作!!!!!昨天开始的,但无法理解。谢谢。它工作!!!!!昨天开始的,但无法理解。谢谢