Qsort函数的应用与讲解
解释:
分析:
void qsort (void* base,//要排序的数组的首元素(就是数组名)size_t num, //要排序的数组元素的个数size_t size,//每个元素的字节大小(int为4,char为1)int (*compar)(const void*,const void*));
比较函数的实现:(分析中用的int,我们就按int来写一个)
int compar(const void*e1,const void*e2)
{//第一个*是解引用,后面的(int*)是强制类型转换成int型的指针
return *(int*)e1-*(int*)e2;//因为解释中说如果e1大于e2返回大于0的值
//等于返回0
//小于返回小于0的值
}
实例:
将:WHERETHEREISAWILLTHEREISAWAY排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compar(const void*e1,const void*e2)
{
return *(char*)e1-*(char*e2);//(升序),e2-e1降序
}
int main()
{
char a[] = " WHERETHEREISAWILLTHEREISAWAY";
int len=strlen(a);
qsort(a,len,1,compar);
printf("%s",a);
return 0;
}
答案;AAAEEEEEEHHHIIILLRRRSSTTWWWY