请问C语言如何将字符串类型的数据集合进行分类和排序,就是比如把一个字符串数组先进性纯数字和非纯数字进行分类,再将两个分类分别进行正序排序,我能单独的进行分类和单独的排序但把二者相结合却总是报错
进行分类成两个数组, 对这两个数组单独排序就行了
你题目的解答代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void sort(char *a[10],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(strcmp(a[j] , a[j+1])>0)
{
char *t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
int main(){
char *a[10]={"56","a7","5c","q7","79","1f","28","ad","zg","47"};
char *b[10];
char *c[10];
int i,j,bl=0,cl=0;
for(i=0;i<10;i++)
{
for (j = 0; a[i][j]!='\0'; j++)
if (a[i][j] < '0' || a[i][j] > '9')
break;
if (a[i][j]=='\0')
b[bl++] = a[i];
else
c[cl++] = a[i];
}
printf("纯数字分类排序:");
sort(b, bl);
for(i=0;i<bl;i++)
printf("%s ",b[i]);
printf("\n");
printf("非纯数字分类排序:");
sort(c, cl);
for(i=0;i<cl;i++)
printf("%s ",c[i]);
printf("\n");
}
如有帮助,望采纳!谢谢!