C 速查手冊

11.4.6 qsort()

stdlib.h函數 (function) qsort() 替陣列 (array) 進行排序,共需四個參數 (parameter) 。第一個參數為所欲排序的陣列,第二個參數為該陣列的個數,第三個參數為利用 sizeof 計算陣列元素所佔的記憶體空間,第四個參數為函數指標 (function pointer),須自行定義排序陣列的排序比較方式。

以下程式利用函數 qsort() 排序某字元陣列

#include <stdio.h>
#include <stdlib.h>

int cmp(const void *s1, const void *s2);

int main(void)
{
    char test[] = "qwertyuioplkjhgfdsazxcvbnm";
    
    qsort(test, 26, sizeof(char), cmp);
    printf("%s\n", test);
    
    return 0;
}

int cmp(const void *s1, const void *s2)
{
    return *(char *)s1 - *(char *)s2;
}

/* 《程式語言教學誌》的範例程式
    http://kaiching.org/
    檔名:cqsort.c
    功能:示範 stdlib.h 中函數 qsort() 的使用
    作者:張凱慶 */

編譯後執行,結果如下

$ gcc cqsort.c
$ a.out
abcdefghijklmnopqrstuvwxyz
$

上一頁 11.4.5 bsearch()
回 C 速查手冊 - 標準程式庫分類索引
下一頁 11.4.7 calloc()
回 C 速查手冊 - 標準程式庫導覽
回 C 速查手冊首頁
回 C 教材首頁
回程式語言教材首頁