求解:用指针实现逆序,不定义其它变量,也不允许使用库函数
如题,实现void reverse(const char *s1,char *s2),我写了好几回了,每回都出错啊!麻烦各位大侠帮忙啦!先谢谢了!
2010-10-13 09:26
2010-10-13 12:36
2010-10-13 14:17
2010-10-13 14:35

2010-10-13 15:23
程序代码:
#include <iostream>
using namespace std;
void reverse(const char *s1,char *s2)
{
char* q=s2;
int n=strlen(s1);
int i=0;
const char* p=s1+n-1;
while(i<n)
{
*q++=*p--;
i++;
}
*q='\0';
}
int main()
{
char* s="awdfdgdgdf";
cout<<s<<endl;
cout<<"逆置后为\n";
int n=strlen(s);
char* s1;
s1=new char[n+1];
reverse(s,s1);
cout<<s1<<endl;
}

2010-10-13 17:05
2010-10-13 20:57
程序代码:#include<stdio.h>
char* reverse(const char *s1,char *s2)
{
*s2='\0';
s2--;
while(*s1)
*s2--=*s1++;
//reverse(s1++,s2--);
printf("%s\n",s2);
return s2;
}
int main()
{
const char *str="12345";
char *sd;
sd=(char *)malloc(sizeof(char)*20);
sd=reverse(str,sd);
printf("%s",sd);
free(sd);
getch();
return 0;
}
2010-10-13 21:57
程序代码:#include<stdio.h>
#include<conio.h>
char* reverse(const char *s1,char *s2)
{
*s2='\0';
s2--;
while(*s1)
*s2--=*s1++;
s2--;
return s2;
}
int main()
{
const char *str="12345";
char *sd;
sd=new char[6];
sd=reverse(str,sd+5);
printf("%s",sd);
getch();
return 0;
}

2010-10-13 22:34