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