【发布时间】:2021-12-15 19:10:33
【问题描述】:
我一直在阅读 C++ For Everyone 一书,其中一个练习说要编写一个函数 string reverse(string str),其中返回值是 str 的倒数。
谁能写一些基本的代码给我解释一下?从昨天开始我就一直在盯着这个问题,无法弄清楚。我得到的最远的是让函数返回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 str_copy;
}
return word;
}
如果我输入“Wolf”,它会返回 Wol。有人在这里帮我
如果我 return word 而不是 return str_copy 那么我得到一个 w
如果我return last_letter,那么我会得到一个l
【问题讨论】:
-
你希望它返回字符串的其余部分反转,然后是第一个字母。
-
这个问题与 recursive 函数有什么关系?你说的你的书是什么意思?
-
哪种方法,递归还是迭代:)?
-
@pajton: "写一个递归函数..."
-
啊!抱歉,我只是看了问题,没有看标题。