关于C++的一道题,编写函数reverse(char *s),用递归算法使字符串倒序

2025-05-04 21:24:32
推荐回答(2个)
回答1:

/*错误:char b[]后面少了;还有,少了b数组的长度.
还有,reverse是一库函数,得改一下名.还有,你的程序是不对.你main()函数中用到返回值,但是在reverse()函数中没有返回.我来给你写一段吧,如下:*/
#include
#include
#define max 100

char *sreverse(char *s,int sta,int end)
{
char c,e;
int n=end;
if(end>sta)
{
c=s[sta];
e=s[end];
s[sta]=e;
s[end]=c;
sta++;
end--;
sreverse(s,sta,end);
}
return s;
}
void main()
{
char a[max];
char *p;
cout<<"请输入字符串:";
cin>>a;
cout<<"逆序前为:"< p=sreverse(a,0,strlen(a)-1);
cout <<"逆序后为:"<
}

回答2:

#include
#include
using namespace std;
void daoxu(char *m,int k)
{
int i,j;
for(i=0;i<(k/2);i++)
{
j=*(m+i);
*(m+i)=*(m+k-1-i);
*(m+k-1-i)=j;
}
}

int main()
{
char a[100];
int i,n;
cin>>a;
n=strlen(a);
daoxu(a,n);
for(i=0;icout<cout<return 0;
}