一道C语言题目 void func(char *s1,char *s2)/*s1为字符串的起始地址s2为新字符串的起始地址注意:字符串尾字符之后跟随着一个结束符'\0'即ASCII码为0 的字符,结束符不属于字符串要求:s1串不能发

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 01:28:11
一道C语言题目voidfunc(char*s1,char*s2)/*s1为字符串的起始地址s2为新字符串的起始地址注意:字符串尾字符之后跟随着一个结束符''\0''即ASCII码为0的字符,结束符不属于字

一道C语言题目 void func(char *s1,char *s2)/*s1为字符串的起始地址s2为新字符串的起始地址注意:字符串尾字符之后跟随着一个结束符'\0'即ASCII码为0 的字符,结束符不属于字符串要求:s1串不能发
一道C语言题目
void func(char *s1,char *s2)
/*s1为字符串的起始地址
s2为新字符串的起始地址
注意:字符串尾字符之后跟随着一个结束符'\0'
即ASCII码为0 的字符,结束符不属于字符串
要求:s1串不能发生改变
s2存放新的字符串 */
对字符串,除首尾字符外,将其余字符按ASCII码降序排列,组合得到一个新的字符串s2

一道C语言题目 void func(char *s1,char *s2)/*s1为字符串的起始地址s2为新字符串的起始地址注意:字符串尾字符之后跟随着一个结束符'\0'即ASCII码为0 的字符,结束符不属于字符串要求:s1串不能发
void func(char *s1,char *s2)
{
int i = 0 ,k = 0,count = 0 ,temp = 0 ;
while( '\0' != * ( s1 + i ) )
{
*( s2 + i ) = * ( s1 + i ) ;
i ++ ;
}
count = i ;
for( i = count - 2 ; i >=0 ; i -- )
{
for( k = i - 1 ; k >= 1 ; k -- )
{
if( s2[ k ] < s2[ i ] )
{
temp = s2[ k ] ;
s2[ k ] = s2[ i ] ;
s2[ i ] = temp ;
}
}
}
}