新聞網(wǎng)站建設(shè)評(píng)比規(guī)則2023重大新聞事件10條
解釋:
qsort排序函數(shù),即講一段數(shù)組,字符串等進(jìn)行有序的排列
?分析:
void qsort (void* base,//要排序的數(shù)組的首元素(就是數(shù)組名)size_t num, //要排序的數(shù)組元素的個(gè)數(shù)size_t size,//每個(gè)元素的字節(jié)大小(int為4,char為1)int (*compar)(const void*,const void*));
比較函數(shù)的實(shí)現(xiàn):(分析中用的int,我們就按int來(lái)寫(xiě)一個(gè))
int compar(const void*e1,const void*e2)
{//第一個(gè)*是解引用,后面的(int*)是強(qiáng)制類(lèi)型轉(zhuǎn)換成int型的指針
return *(int*)e1-*(int*)e2;//因?yàn)榻忉屩姓f(shuō)如果e1大于e2返回大于0的值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//等于返回0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //小于返回小于0的值
}
實(shí)例:
將: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
?