【发布时间】:2015-01-03 11:11:11
【问题描述】:
我想用 C 语言编写一个递归函数来反转一个单词。我知道如何打印它,但实际上我不知道如何反转原始单词。 所以,我想编写一个函数来反转一个单词,使用指针,使用 string.h,但必须是 void,不打印,并更改原始单词。函数原型: 无效反向(字符*字符串); 我能写的是递归的停止项(我不确定它们是否正确);
if(!string) return; // if the string is empty
if(*(string+1)=='\0' return (*string); // if there is only on char in the string
if(*(string+2))=='\0' // if there are only 2 letters In the strings-swap
temp=(*string);
(*string)= * (string+1);
(*string+1)= temp; // I don't know what to do after..
如果大家可以向我解释该怎么做,那就太好了。 谢谢。
【问题讨论】:
-
如果你添加一个函数头来查看接口以及局部变量定义会很有用。
-
你想在递归调用还是循环中回答?
-
@Karthikeyan.R.S 递归调用
-
这应该是颠倒一个句子中的 words 还是颠倒一个 string ?你的描述不清楚。 “句子中的单词倒转”==>“单词中的句子 A 倒转”。而“反转字符串”==>“gnirtS A esreveR”。 究竟是什么? (注意,前者比后者困难得多)。
-
@ WhozCraig 你是对的,不清楚.. 我刚刚编辑了它。只是颠倒一个词..不是一个句子。
标签: c