用C语言对字符串分类排序

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:25:41
编写程序,该程序的功能是将字符串中所有字母字符按升序排列后,移到串的首部;其他字符按升序排列后,移到串的尾部。
要求如下:
(1)编写函数 void fun(char *p),实现程序功能;
(2)在main函数中,由键盘输入一个字符串。
(3)在main函数中,输出移动后的字符串。
例如:键盘上输入:***C##b@A##a@B***,则输出结果:ABCab####******@@用C语言编写,不要用C++

加点分吧,我花了一个多小时啊
#include"stdio.h"
char d[20],e[20],f[20];
void sort(char s[])
{
int i,j,k,len=0;
char t;
while(s[len])len++;
for(i=0;i<len-1;i++)
{
k=i;
for(j=i+1;j<len;j++)
if(s[k]>s[j])k=j;
if(k!=i)
{
t=s[i];
s[i]=s[k];
s[k]=t;
}
}
}
void fun(char *p)
{
char *a,*b,*c,g[30];
int i,j,k;
a=d;
b=e;
c=f;
for(;*p!='\0';p++)
{
if(*p>='A'&&*p<='Z')
*a++=*p;
else if(*p>='a'&&*p<='z')
*b++=*p;
else
*c++=*p;
}
*a='\0';
*b='\0';
*c='\0';
sort(d);
sort(e);
sort(f);
p=g;