C语言一道题,找不出哪里错,高手帮帮忙
题目是
#include<stdio.h>
void main()
{void fun(char *s1,char *s2,int num);
char string_1[8],string_2[8];
char *p,*q;
q=string_2;
printf("input string[7]:");
gets(string_1); /*输入字符串*/
p=string_1;
fun(p,q,7); /*调用函数*/
printf("\n");
puts(q); /*输出字符串*/
}
void fun(char *s1,char *s2,int num)
{int i,j;
char t;
while(*s2++=*s1++); /*S1指针指向的元素赋值给S2指针指向的元素*/
for(j=1;j<num-2;j++) /*以下两个循环作用是若前一个指针指向的元素大于后一个指针指向的元素,将它们相互交换*/
for(i=j+1;i<num-1;i++)
if(*(s2+j)>*(s2+i))
{t=*(s2+j);
*(s2+j)=*(s2+i);
*(s2+i)=t;
}
}
如果我输入:chinese
结果是:chinese
求解,为什么会出现这结果,请就在这代码里找问题,不需再帮我做个正确的~感激!!!!