C语言编程题目,写出代码。

10.016对字符串s1,除首、尾字符外,将其余字符按ASCII码降序排列,组合成一个新的字符串s2。要求实现函数:voidfunc(char*s1,char*s2);/... 10.016 对字符串s1,除首、尾字符外,将其余字符
按ASCII码降序排列,组合成一个新的字符串s2。

要求实现函数:
void func(char *s1, char *s2);
/* s1为字符串的起始地址,
s2为新字符串的起始地址,
注意:字符串尾字符之后跟随着一个结束符‘\0’,
即ASCII码为0的字符,结束符不属于字符串。
要求:s1串不能发生改变,
s2串存放新的字符串。
*/
展开
 我来答
White_MouseYBZ
2015-12-01 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6368万
展开全部
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
void func(char *s1,char *s2){
    int i,j,k;
    for(i=0,s1++;*(s1+1);*(s2+i++)=*s1++);//将s1去头尾拷入s2
    *(s2+i)='\0';//给s2最后字符后加'\0'
    for(i=0;*(s2+i);i++){//对s2降序排序
        for(k=i,j=k+1;*(s2+j);j++)
            if(*(s2+k)<*(s2+j))
                k=j;
        if(k!=i){
            j=*(s2+k);
            *(s2+k)=*(s2+i);
            *(s2+i)=j;
        }
    }
}
int main(void){//测试一下...
    char *s1="123efgh4567890abcd",s2[50];
    func(s1,s2);
    printf("%s\n",s2);
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式