溫馨提示×

字符排序c語言中的比較函數(shù)

小樊
83
2024-07-09 14:48:23
欄目: 編程語言

在C語言中,可以使用標(biāo)準(zhǔn)庫函數(shù)qsort()來對字符數(shù)組進(jìn)行排序,同時需要自定義一個比較函數(shù)來指定排序的規(guī)則。

比較函數(shù)的聲明如下:

int compare(const void *a, const void *b);

比較函數(shù)的實現(xiàn)如下:

int compare(const void *a, const void *b) {
    return *(char*)a - *(char*)b;
}

在比較函數(shù)中,參數(shù)ab都是void類型的指針,需要將其轉(zhuǎn)換為char類型的指針,并取出其值進(jìn)行比較。比如上面的比較函數(shù)就是按照字符的ASCII碼值進(jìn)行升序排序。

最后,將比較函數(shù)傳遞給qsort()函數(shù)進(jìn)行排序:

char str[] = "hello";
int len = strlen(str);
qsort(str, len, sizeof(char), compare);

這樣就可以對字符數(shù)組str進(jìn)行排序了。

0