高手帮帮忙哈

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

#include"stdio.h"
#include"string.h"
#include"ctype.h"
char final[100]={'\0'}; /*´æ·ÅÅÅÐòºóµÄ×Ö·û´®*/
void fun(char *p)
{
char alp[100]={'\0'},nalp[100]={'\0'},ch;
int flag=0,i=0,j=0,alen,nalen;
while(*p!='\0') /*ÏȽ«×ÖĸºÍ·Ç×Öĸ·Ö¿ª*/
{
flag=isalpha(*p);
if(flag) { alp[i]=*p; i++;} /*×Öĸ´æ·ÅÔÚalp[]ÖÐ*/
else {nalp[j]=*p; j++;} /*·Ç×Öĸ´æ·ÅÔÚnalp[]ÖÐ*/
p++;
}
alen=i; /*×ÖĸµÄ¸öÊý*/
nalen=j; /*·Ç×ÖĸµÄ¸öÊý*/
for(i=0;