你的问题在于for循环里面,字符串前面的一部分被都后面的一部分赋值以后,就丢失了,那后一半的值再用前一半的来赋值就是相同的了,那结果就是输入123456,输出是654456,只需要在赋值前把原值保存起来,然后再赋值就可以了,我帮你修改了一下:
void fun(char*s)
{
int i,j;
char *t;
t=s;
j=strlen(s);
char temp;
for(i=0;i
temp = s[i];
s[i]= t[j-i-1];
t[j-i-1] = temp;
}
}