#include <stdio.h>
#include <stdlib.h>int mycompare( const void *s1 , const void *s2 )
{
const char a1 = *((char*)s1);
const char a2 = *((char*)s2);
if( a1 < a2 ){
return -1;
} else if( a1 == a2 ){
return 0;
} else {
return 1;
}
}int main()
{
char data[]="gaeiogthraenmbhio";
printf("before : %s\n" , data );
qsort( data , sizeof(data)-1 , sizeof( data[0] ) , mycompare );
printf("after : %s\n" , data );
return 0;
}
#include <stdio.h>
#include <stdlib.h>typedef struct {
int a;
char data[10];
} TData;TData gdata[]={
{10,"aaa"},{5,"bbb"},{45,"ccc"},{3,"ddd"},{14,"eee"},{6,"fff"}
};int mycompare( const void *s1 , const void *s2 )
{
const TData a1 = *((TData*)s1);
const TData a2 = *((TData*)s2);
if( a1.a < a2.a ){
return -1;
} else if( a1.a == a2.a ){
return 0;
} else {
return 1;
}
}int main()
{
char data[]="gaeiogthraenmbhio";
int i;printf("before\n");
for( i=0 ; i<sizeof(gdata)/sizeof(gdata[0]) ; i++ ){
printf("%d %s\n",gdata[i].a,gdata[i].data);
}qsort( gdata , sizeof(gdata)/sizeof(gdata[0]) , sizeof( gdata[0] ) , mycompare );
printf("\nafter\n");
for( i=0 ; i<sizeof(gdata)/sizeof(gdata[0]) ; i++ ){
printf("%d %s\n",gdata[i].a,gdata[i].data);
}return 0;
}