Trong bài toán này, chúng ta được cung cấp một mảng chuỗi. Nhiệm vụ của chúng ta là tạo một chương trình c để sắp xếp một mảng tên hoặc chuỗi. Chương trình này sẽ sắp xếp tất cả các tên mà chúng tôi đã cung cấp trong đầu vào theo thứ tự bảng chữ cái tăng dần.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào
namesArray = ["Rishabh", "Jyoti", "Palak", "Akash"]
Đầu ra
["Akash", "jyoti", "palak", "Rishabh"]
Để giải quyết vấn đề này, chúng ta sẽ sử dụng hàm qsort () của thư viện mẫu chuẩn vì chúng ta biết việc sắp xếp các giá trị nguyên, điều thay đổi ở đây là chúng ta đang xem xét chuỗi để so sánh thay vì các giá trị nguyên.
Vì vậy, bộ so sánh được sử dụng trong qsort () sẽ được thay đổi và strcmp () sẽ được sử dụng để so sánh các chuỗi trong bộ so sánh. Sử dụng điều này, chúng tôi có thể sắp xếp mảng tên hoặc chuỗi.
C Chương trình sắp xếp một mảng tên hoặc chuỗi
Ví dụ
#include <stdio.h> #include <stdlib.h> #include <string.h> static int comparator(const void* str1, const void* str2) { if(strcmp(*(const char**)str1, *(const char**)str2) >= 0) return 1; else return 0; } int main() { const char* arr[] = {"Rishabh", "Jyoti", "Palak", "Akash"}; int n = sizeof(arr) / sizeof(arr[0]); printf("\nGiven array of names: \t"); for (int i = 0; i < n; i++) printf("%s \t", arr[i]); qsort(arr, n, sizeof(const char*), comparator); printf("\nSorted array of names: \t"); for (int i = 0; i < n; i++) printf("%s \t", arr[i]); return 0; }
Đầu ra
Given array of names: Rishabh Jyoti Palak Akash Sorted array of names: Akash Jyoti Palak Rishabh