Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Sắp xếp mảng chuỗi (tên) trong C

Cho mảng chuỗi. Sắp xếp theo thứ tự bảng chữ cái tăng dần dùng qsort().

Ví dụ

Đầu vào - ["Rishabh", "Jyoti", "Palak", "Akash"]

Đầu ra - ["Akash", "Jyoti", "Palak", "Rishabh"]

Phương pháp

  • Mảng con trỏ char*: const char* arr[]
  • qsort với comparator dùng strcmp()
  • Comparator: so sánh 2 con trỏ char**

Chương trình mẫu

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

int comparator(const void *a, const void *b) {
    return strcmp(*(const char**)a, *(const char**)b);
}

int main() {
    const char *arr[] = {"Rishabh", "Jyoti", "Palak", "Akash"};
    int n = sizeof(arr)/sizeof(arr[0]);
    
    printf("Trước: ");
    for (int i = 0; i < n; i++) printf("%s ", arr[i]);
    
    qsort(arr, n, sizeof(const char*), comparator);
    
    printf("\nSau: ");
    for (int i = 0; i < n; i++) printf("%s ", arr[i]);
    return 0;
}

Kết quả

Trước: Rishabh Jyoti Palak Akash
Sau: Akash Jyoti Palak Rishabh