c語言中可以通過使用庫函數qsort()
來對字符串數組進行排序。
qsort()
函數原型為:
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
其中,base
為待排序數組的起始地址,nmemb
為待排序數組的元素個數,size
為每個元素的大小,compar
為比較函數的指針。
比較函數的原型為:
int compar(const void *a, const void *b);
其中,a
和b
為指向待比較元素的指針,比較函數應返回一個整數值:
a
應排在b
之前;a
應排在b
之后;a
和b
的相對順序不變。下面是一個示例代碼,演示如何使用qsort()
函數對字符串數組進行排序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
int main() {
char *array[] = {"apple", "banana", "orange", "grape", "lemon"};
int length = sizeof(array) / sizeof(array[0]);
qsort(array, length, sizeof(array[0]), compare);
for (int i = 0; i < length; i++) {
printf("%s\n", array[i]);
}
return 0;
}
輸出結果為:
apple
banana
grape
lemon
orange
該示例中,字符串數組array
中存儲了5個字符串,通過調用qsort()
函數對其進行排序,排序結果按照字母順序排列。