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串存放新的字符串。
*/ 展开
按ASCII码降序排列,组合成一个新的字符串s2。
要求实现函数:
void func(char *s1, char *s2);
/* s1为字符串的起始地址,
s2为新字符串的起始地址,
注意:字符串尾字符之后跟随着一个结束符‘\0’,
即ASCII码为0的字符,结束符不属于字符串。
要求:s1串不能发生改变,
s2串存放新的字符串。
*/ 展开
展开全部
//#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询