69,371
社区成员
发帖
与我相关
我的任务
分享
void func(char *s1, char *s2 int n)
/* s1为字符串的起始地址,
s2为新字符串的起始地址,
n为字符串的长度。
要求:s1串不能发生改变,
s2串存放新的字符串。
*/
{
for (i = 0; i < n; ++i) /*将字符拷贝至s2,后面对s2排序*/
s2[i] = s1[i];
/*对s2进行冒泡排序,除了首字符和尾字符。*/
for (i = 1; i < n - 1; i++)
for (j = 1; j < n - 1 -i - 1; j++)
if (s2[j] > s2[j+1]) {
char tmp = s2[j];
s2[j] = s2[j+1];
s2[j+1] = tmp;
}
#if 0
int i,j;
char *max,*p1=s1;
for(i=1;i<=n;i++,max++)
for(j=1;j<n-1;j++,p++) {*max=*p1>=*(p1+1)? *p1:*(p1+1);}
s2=max;
#endif
}
参考一下吧;
s2接收的实参是数组(或动态malloc申请的空间);