回复 5楼 hejian11
谢谢你的程序,不过我还是想知道原来那些语句都错在哪里
#include<stdio.h>
#include<string.h>
void fun(char *w,int n)
{
char t,*s1,*s2;
s1=w;
s2=w+n-1;
while(s1<s2) {
t=*s1;
*s1=*s2;
*s2=t;
s1++;
s2--;
}
}
int main()
{
char str[20];
printf("please input numbers:\n");
scanf("%s",str);
char *p;
p=str;
fun(p,strlen(p));
puts(p);
return 0;
}
这是我自己改的程序,我知道错哪了 ,
错误1:
t=*s1++;
*s1=*s2--;
*s2=t;
因为s1是字符串的首地址,s1到s2中都是属于字符串的内存 所以他们不能当char来赋值
修改方法
创建数组接受字符串,串字符的首地址就可以了
错误2:
t=*s1++;
*s1=*s2--;
*s2=t;
逻辑性错误
t=*s1;
*s1=*s2;
*s2=t;
s1++;
s2--;
改成这样就可以了
还有就是思想很乱 谢谢一个孩子提供的代码