在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ù)a
和b
都是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)行排序了。