【发布时间】:2016-01-25 08:12:01
【问题描述】:
为了全面披露,这是一项家庭作业。
我需要使用仅接受“char *string”输入的递归函数来反转 char 字符串
我已经做了很多谷歌搜索等等,但似乎无法弄清楚。如果我可以使用 void 函数,这将在几个小时前完成,但可惜,这是不允许的。
以下代码不返回任何内容,我们也不允许更改函数签名
char *reverseString(char *string)
{
if (*string =='\0') return string;
else
{
return reverseString(string + 1) + *string;
}
}
这是我多次尝试从 main 调用此函数以从中获取输出,虽然代码运行,但我在控制台中没有得到任何输出
char Tstring[] = "TestString";
cout << reverseString(Tstring);
cout << *reverseString(Tstring);
char *answer2 = reverseString(Tstring);
cout << *answer2;
我显然不是在寻求直接的解决方案,但是我很难理解如何使用指针作为输入等等来做到这一点。任何正确方向的提示或轻推表示赞赏
【问题讨论】:
-
“写
void函数”,然后改成返回“char *”并返回输入。 -
你不能使用其他功能来做这项工作吗?
-
char*字符串不与+运算符连接。 -
您的递归适用于真正的字符串对象,但不适用于
char*。您需要使用不同的递归,即字符的就地交换。