इस समस्या में, हमें स्ट्रिंग की एक सरणी दी गई है। हमारा कार्य नामों या स्ट्रिंग्स की सरणी को सॉर्ट करने के लिए एक C प्रोग्राम बनाना है। यह प्रोग्राम इनपुट में दिए गए सभी नामों को आरोही वर्णमाला क्रम में सॉर्ट करेगा।
आइए एक उदाहरण लेकर समस्या को समझते हैं,
इनपुट
namesArray = ["Rishabh", "Jyoti", "Palak", "Akash"]
आउटपुट
["Akash", "Jyoti", "Palak", "Rishabh"]
इसे हल करने के लिए हम मानक टेम्पलेट लाइब्रेरी के qsort() फ़ंक्शन का उपयोग करेंगे क्योंकि हम जानते हैं कि पूर्णांक मानों की सॉर्टिंग में यहां जो चीज़ बदलती है वह यह है कि हम तुलना के लिए पूर्णांक मानों के बजाय स्ट्रिंग पर विचार कर रहे हैं।
तो, qsort() में उपयोग किया जाने वाला तुलनित्र बदल जाएगा, और तुलनित्र में स्ट्रिंग्स की तुलना के लिए strcmp() का उपयोग किया जाएगा। इसका उपयोग करके हम नामों या स्ट्रिंग्स की सरणी को सॉर्ट कर सकते हैं।
नामों या स्ट्रिंग्स की सरणी को सॉर्ट करने के लिए C प्रोग्राम
उदाहरण
#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("\nदिए गए नामों की सरणी: \t"); for (int i = 0; i < n; i++) printf("%s \t", arr[i]); qsort(arr, n, sizeof(const char*), comparator); printf("\nसॉर्ट की गई नामों की सरणी: \t"); for (int i = 0; i < n; i++) printf("%s \t", arr[i]); return 0; } आउटपुट
दिए गए नामों की सरणी: Rishabh Jyoti Palak Akash सॉर्ट की गई नामों की सरणी: Akash Jyoti Palak Rishabh