二、编写程序,该程序的功能是将字符串中所有字母字符按降序排列后,移到串的首部,程序编写要求如下:

(1)编写函数 void fun(char *p),实现程序功能;
(2)在main函数中,由键盘输入一个字符串。
(3)在main函数中,输出移动后的字符串。
例如:键盘上输入:***C##b@A##a@B***,则输出结果:baCBA***##@##@***。

#include <stdio.h>
#define N 100
void main(){
void fun(char *p);
char a[N];
char *p;
p=a;
scanf("%s",p);
fun(p);
printf("%s\n",p);
}
void fun(char *p){
char b[N],c[N],temp;
int i,j,k=0,m=0,n=0;
while(*(p+k)!='\0'){
if(*(p+k)>='A'&&*(p+k)<='Z'||*(p+k)>='a'&&*(p+k)<='z'){
b[m]=*(p+k);
m++;
}else{
c[n]=*(p+k);
n++;
}
k++;
}
for(i=0;i<m;i++)
for(j=0;j<m;j++)
if(b[i]>b[j]){
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
for(i=0;i<m;i++)
*(p+i)=b[i];
for(i=m,j=0;i<m+n;i++,j++)
*(p+i)=c[j];
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜