c语言 一个字符串中 字母与数字排序 位置不变

2025-03-22 08:20:32
推荐回答(1个)
回答1:

#include 
#include 
//字符串s排序,排序的内容从字符B到E,PX为0用升序,非0用降序 
void paixu(char *s,char B,char E,int PX){
int i,j;
char ch;
for(i=0;i if (!(s[i]>=B && s[i]<=E)) continue;
for(j=i+1;j if (!(s[j]>=B && s[j]<=E)) continue;
if ((PX==0)&&(s[i]>s[j]) || (PX!=0)&&(s[i] ch=s[i];s[i]=s[j];s[j]=ch;
}
}
}
}
int main(){
char s[]="b3a1#f7@9c5ed";

printf("处理之前是\n%s\n",s);
paixu(s,'0','9',0); //数字排序,按升序 
paixu(s,'a','z',1); //小写字母排序,按降序 
printf("处理之后是\n%s\n",s);
}