思想:
1、指:指针数组指向字符数组;
2、排:从p[0]到p[n]挨个判断,如果是数字就移到第count(初始为0 每移动一次数字+1)个位置,如果是\0就结束排序。
#include <stdio.h>
#include <stdlib.h>
void exchange(char *p1,char *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void sort(char *p)
{
int i,j,count=0;
for(i=1; i<100; i++) //排序 遇到数字就往前排
{
if(48<=p[i] && p[i]<=57)
{
if(p[i]=='\0') break;
for(j=i; j>count; j--)
{
exchange(&p[j-1],&p[j]);
}
count++;
}
}
}
int main()
{
char c[100];
char *p;
int i;
while(gets(c))
{
p=(char*)malloc(sizeof(char*)*100);
for(i=0; i<100; i++) //初始化所有指针
{
p[i]=c[i];
}
sort(p);
puts(p);
}
system("pause");
}