c:使用递归反转字符串?

时间:2015-07-09 13:13:07

标签: c arrays string recursion char

这个功能有什么问题?

   void stringReverse (char stringa[])
    {
        if (stringa[0]!='\0')
        {
            return stringReverse(&stringa[1]);
            printf("%c", stringa[0]);
        }
    }

我必须使用递归来编写一个反转字符串的函数(例如:" Hello" in" olleH");该函数必须接收一个字符串(没有别的)并以相反的顺序打印字符...我不明白为什么我写的没有打印任何东西......

2 个答案:

答案 0 :(得分:2)

return从函数返回一个值,并在该范围内不再执行任何语句。想一想你想要那个陈述的地方......

没有完全回答,因为这听起来像是家庭作业!

答案 1 :(得分:1)

只是不要使用return。 使用stringReverse(&stringa[1]);代替 return stringReverse(&stringa[1]);

因为,'返回'语句用于返回值。但是你的函数是void类型,这意味着它什么都不返回,它不需要。