写一个递归函数,它以字符串为参数并且返回这个字符串的倒序。该函数的原型是 char *Reverse(char *str) 10

写一个递归函数,它以字符串为参数并且返回这个字符串的倒序。该函数的原型是char*Reverse(char*str)且下面的语句printf("%s\n",Reverse... 写一个递归函数,它以字符串为参数并且返回这个字符串的倒序。该函数的原型是
char *Reverse(char *str)
且下面的语句
printf("%s\n",Reverse(Program));
将显示
margorp
展开
 我来答
laozibi
推荐于2017-12-16 · TA获得超过7966个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:4600万
展开全部
这并没有使用指针

无效的主要()
{
无效strReverse(的char [],int)的;
字符STR [] = “编辑此字符串来扭转”;
诠释莱恩??= 0;
(STR [LEN] ='\ 0')
{LEN + +;}
strReverse(STR,LEN);

的getch();
}

无效strReverse(CHAR STR [],INT)
{ />(STR [0] ='\ 0'&& N!= 0)
{
printf的(“%c”的,(STR [N-1]));
strReverse(STR,N-1);
}

}

基本关闭,但第一看看如何定义的字符数组对象
第一次分析时,系统将字符ABCD加\ 0,然后分配给字符数组
[1]字符海峡[] =“ABCD”,“ABCD”五元素,最后是\ 0;
[2]一个字符STR [] = {'A??','B','C','D'};有四个元素,并最终D
> 2。增加一个空字符判断递归

“stdio.h中”
无效的主要()
{
是无效strReverse(为const char * PSTR);
字符*海峡=“编辑字符串扭转”;
strReverse(STR);
的getch();
}

无效strReverse(常量的char * PSTR)
{字符* pstr2 = PSTR
(* pstr2!='\ 0')
{静态int n = 1时,
如果(N = 1)
{INT I = strlen的(PSTR)-1,K;
pstr2 =(char *)的的malloc(strlen的(PSTR)+1);
(k = 0;我> = 0; I - ,K + +)/ *循环以相反的顺序* /
{*(pstr2 + K)= *(PSTR + I);}
*(pstr2 + K)= '\ 0'; / *添加的最后一个字符\ 0 * /
N + +;
}
输出(“%c”的,* pstr2);
/> strReverse(pstr2 +1);}
}

[2]没有递归
的#include“stdio.h中”
无效的主要() /> {:无效strReverse(字符* PSTR);
字符*海峡=“编辑字符串扭转”;
strReverse(STR);
的getch();
/>}

无效strReverse(CHAR * PSTR)
{(pstr! = 0)/ *判断输入的字符不能为空* ??/
{INT I = strlen的(PSTR)-1; / *计算字符串的长度,不包括\ 0 * /
整数K;
的char * pstr2;的
pstr2 =(char *)的的malloc(strlen的( PSTR)+1); / *申请一个空间的大小将超过1比原来的字符串\ 0 * /
为(k = 0; I> = 0; I - ,和k + +)/ *循环在相反的顺序* /
{*(pstr2 + K)= *(PSTR + I);}
*(pstr2 + K)='\ 0'; / *添加的最后一个字符\ 0 * /
printf的(“%”,pstr2);
}
其他输出(“错误\ n”);

}
追问
您回答的排版我看不太懂
百度网友f3b3e02
2013-03-20 · TA获得超过2156个赞
知道小有建树答主
回答量:821
采纳率:90%
帮助的人:586万
展开全部
//一定是你想要的,想法也很直接:
//采用首尾交换,直至达到中间(全部参与了交换),
//将所得新顺序(完成全部交换的数据)逆向传递回去,并在主函数中输出。
#include "stdio.h"
#include "string.h"
int start,count;
char *Reverse(char *str)
{
char temp;
if(start<count/2)
{
temp=*(str+start);*(str+start)=*(str+count-start-1);*(str+count-start-1)=temp;
start=start+1;
return Reverse(str);
}
else
return str;
}
int main()
{
char str[1024];
printf("输入字符串:");
scanf("%s",str);
start=0;
count=strlen(str);
printf("%s",Reverse(str));
}
追问
printf("%s\n",Reverse(Program));  这是关键
追答
啥意思,没明白。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云_海缘
2013-03-13
知道答主
回答量:12
采纳率:100%
帮助的人:1.9万
展开全部
package sscr;
import javax.swing.JOptionPane;
public class Stringp1 {
public static void main(String[] args) {
String s;
s = JOptionPane.showInputDialog("please input a string:");
reverseString(s);
}

public static void reverseString(String str) {
//try-catch块处理下字符串为空时的异常
try{
if(str.length()==0)
System.out.println("没有可输出的字符串!");
if (str.length() == 1) {
System.out.println(str);
} else {
String subString1 = str.substring(0, str.length() - 1);
String subString2 = str.substring(str.length() - 1);
System.out.print(subString2);
reverseString(subString1);

}
}
catch(Exception e){

}

}
}
追问
要求返回值类型为 char *
追答
java没有指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式