c語(yǔ)言字符數(shù)組怎么排序

小億
81
2024-08-22 23:53:27

要對(duì)C語(yǔ)言中的字符數(shù)組進(jìn)行排序,可以使用標(biāo)準(zhǔn)庫(kù)函數(shù)qsort()。首先需要包含頭文件<stdlib.h>,然后定義一個(gè)比較函數(shù)來指定排序規(guī)則。

下面是一個(gè)示例程序,對(duì)字符數(shù)組進(jìn)行排序:

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

// 比較函數(shù),用于指定排序規(guī)則
int compare(const void *a, const void *b) {
    return *(char*)a - *(char*)b;
}

int main() {
    char arr[] = {'d', 'c', 'a', 'b', 'e'};
    int n = sizeof(arr) / sizeof(arr[0]);

    printf("Before sorting: ");
    for (int i = 0; i < n; i++) {
        printf("%c ", arr[i]);
    }
    printf("\n");

    qsort(arr, n, sizeof(char), compare);

    printf("After sorting: ");
    for (int i = 0; i < n; i++) {
        printf("%c ", arr[i]);
    }
    printf("\n");

    return 0;
}

運(yùn)行此程序,將輸出:

Before sorting: d c a b e 
After sorting: a b c d e 

在比較函數(shù)compare()中,通過轉(zhuǎn)換void*指針為char*指針,然后比較字符的大小來確定排序規(guī)則。然后調(diào)用qsort()函數(shù)對(duì)字符數(shù)組進(jìn)行排序。

0