字符串逆置

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:12:09
char *reverse(char *s)
{
char *p1,*p2;
char t;
for(p1=s;*s!='\0';p1++)
p1--;
for(p2=s;p2<p1;p1--,p2++)
{t=*p1;*p1=*p2;*p2=t;};
return s;
}
main()
{
char p1[100];
gets(p1);
puts(reverse(p1));
}

什么问题,运行不了,谢谢

for(p1=s;*s!='\0';p1++)
p1--;//what did you mean here?

for(p2=s;p2<p1;p1--,p2++)
{t=*p1;*p1=*p2;*p2=t;};
/*p1指向谁?初始化了吗*/

//我的算法如下:

char *reverse(char *s)
{
char temp;
int i,j,len;
len=strlen(s);

for(i=0,j=len;i<len/2;i++,j--)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;

}

return s;

}