उपयोगकर्ता को नामों की संख्या दर्ज करनी होगी, और उन नामों को strcpy() फंक्शन की मदद से वर्णमाला क्रम में सॉर्ट करना आवश्यक है।
कैरेक्टर्स की एक सरणी (या) कैरेक्टर्स का संग्रह एक स्ट्रिंग कहलाता है।
डिक्लेरेशन
एक सरणी के लिए डिक्लेरेशन निम्नानुसार है:
char stringname[size];
उदाहरण के लिए, char string[50]; 50 कैरेक्टर्स की लंबाई की स्ट्रिंग।
इनिशियलाइज़ेशन
- सिंगल कैरेक्टर कॉन्स्टेंट का उपयोग करके
char string[10] = {'H', 'e', 'l', 'l', 'o', '\0'}
- स्ट्रिंग कॉन्स्टेंट का उपयोग करके
char string[10] = "Hello";
एक्सेसिंग
स्ट्रिंग को तब तक एक्सेस करने के लिए एक कंट्रोल स्ट्रिंग "%s" उपयोग किया जाता है जब तक यह '\0' का सामना नहीं करता।
strcpy()
यह फंक्शन सोर्स स्ट्रिंग को डेस्टिनेशन स्ट्रिंग में कॉपी करने के लिए उपयोग किया जाता है।
डेस्टिनेशन स्ट्रिंग की लंबाई सोर्स स्ट्रिंग से अधिक या बराबर होनी चाहिए।
strcpy() फंक्शन का सिंटैक्स निम्नानुसार है:
strcpy(Destination string, Source String);
उदाहरण के लिए,
char a[50]; char a[50];
strcpy("Hello", a); strcpy(a, "hello");
output: error output: a = "Hello"
नामों को वर्णमाला क्रम में सॉर्ट करने के लिए उपयोग की जाने वाली तर्क निम्नानुसार है:
for(i = 0; i < n; i++){
for(j = i+1; j < n; j++){
if(strcmp(str[i], str[j]) > 0){
strcpy(s, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], s);
}
}
}
प्रोग्राम
निम्नलिखित C प्रोग्राम नामों को वर्णमाला क्रम में सॉर्ट करता है:
#include <stdio.h>
#include <string.h>
main(){
int i, j, n;
char str[100][100], s[100];
printf("Enter number of names :\n");
scanf("%d", &n);
printf("Enter names in any order:\n");
for(i = 0; i < n; i++){
scanf("%s", str[i]);
}
for(i = 0; i < n; i++){
for(j = i+1; j < n; j++){
if(strcmp(str[i], str[j]) > 0){
strcpy(s, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], s);
}
}
}
printf("\nThe sorted order of names are:\n");
for(i = 0; i < n; i++){
printf("%s\n", str[i]);
}
}
आउटपुट
Enter number of names: 5 Enter names in any order: Pinky Lucky Ram Appu Bob The sorted order of names is: Appu Bob Lucky Pinky Ram