इस समस्या में, हमें स्ट्रिंग की एक सरणी दी जाती है। हमारा काम नाम या स्ट्रिंग की एक सरणी को सॉर्ट करने के लिए एक सी प्रोग्राम बनाना है। यह प्रोग्राम हमारे द्वारा इनपुट में दिए गए सभी नामों को आरोही वर्णानुक्रम में क्रमबद्ध करेगा।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
namesArray = ["Rishabh", "Jyoti", "Palak", "Akash"]
आउटपुट
["Akash", "jyoti", "palak", "Rishabh"]
इसे हल करने के लिए हम मानक टेम्पलेट लाइब्रेरी के qsort() फ़ंक्शन का उपयोग करेंगे क्योंकि हम जानते हैं कि पूर्णांक मानों को छाँटने से जो चीज़ यहाँ बदलती है वह यह है कि हम पूर्णांक मानों के बजाय तुलना के लिए स्ट्रिंग पर विचार कर रहे हैं।
तो, qsort() में उपयोग किए जाने वाले तुलनित्र को बदल दिया जाएगा, और strcmp() का उपयोग तुलनित्र में स्ट्रिंग्स की तुलना करने के लिए किया जाएगा। इसका उपयोग करके हम नामों या स्ट्रिंग्स की सरणी को सॉर्ट कर सकते हैं।
सी प्रोग्राम नामों या स्ट्रिंग्स की एक सरणी को सॉर्ट करने के लिए
उदाहरण
#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; }
आउटपुट
Given array of names: Rishabh Jyoti Palak Akash Sorted array of names: Akash Jyoti Palak Rishabh