एक स्ट्रिंग को देखते हुए और मिश्रित मामले के साथ, यानी अपरकेस और लोअर केस दोनों के साथ, कार्य पहले अक्षर को अपरकेस में अपरकेस में आराम करना है यदि यह अपर केस में है।
आइए इसे एक साधारण उदाहरण की मदद से गहराई से समझते हैं।
जैसे हमें एक स्ट्रिंग "hElLo World" दी जाती है, हमें पहले अक्षर 'h' को अपरकेस 'H' में बदलना होगा और स्ट्रिंग के स्थान या अंत से पहले सभी अक्षरों को लोअरकेस में बदलना होगा।
इसके अलावा जब हमें स्पेस के बाद पहला कैरेक्टर मिलता है तो हमें उसे अपरकेस में बदलना होता है।
उदाहरण
Input: str[] = {“heLlO wORLD”} Output: Hello World Input: str[] = {"sUNIDHi bAnSAL"} Output: Sunidhi Bansal
नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है -
- इस समस्या को हल करने के लिए हम वर्णों के ASCII मानों का उपयोग करेंगे।
- ASCII का मतलब अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज है, इसका मतलब है कि हर कैरेक्टर के साथ कुछ कोड जुड़ा होता है। जैसे अपरकेस अक्षरों A-Z को 65-90 से संख्यात्मक मान दिया जाता है और लोअरकेस a-z को 97-122 तक की संख्याएँ दी जाती हैं। इसलिए हम अपनी समस्या को हल करने के लिए इन मूल्यों का उपयोग करेंगे।
- हम पूरी स्ट्रिंग को पार करेंगे और,
- जांचें कि क्या स्पेस '' के बाद पहला या तत्काल कैरेक्टर a-z रेंज में है तो हम 'A' और 'a' के ASCII मानों को घटा देंगे और फिर कैरेक्टर में रिजल्ट जोड़ देंगे।
- अगर यह स्पेस के तुरंत बाद पहला कैरेक्टर या कैरेक्टर नहीं है तो हमें यह जांचना होगा कि कैरेक्टर अपरकेस में है या नहीं, फिर लोअरकेस में कन्वर्ट करें और 'ए' - 'ए' के घटाव के परिणाम में कैरेक्टर का मान जोड़ें।
एल्गोरिदम
Start In Function int firstupper(char str[], int n) Step 1-> Initialize int i Step 2-> Loop For i = 0 And i<n And i++ If i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ' then, If str[i] >= 'a' && str[i]<='z' then, str[i] = (char)(('A'-'a') + str[i] ) End If Else If str[i] >= 'A' && str[i] <= 'Z' then, str[i] = (char)(str[i] + ('a' - 'A')) End If End Function In Function int main(int argc, char const *argv[]) Step 1-> Declare and initialize char str[] = {"sUNIDHi bAnSAL"} Step 2-> Declare n set as sizeof(str)/sizeof(str[0]) Step 3-> firstupper(str, n) Step 4-> Print "%s\n", str End main
उदाहरण
#include <stdio.h> int firstupper(char str[], int n) { int i; for(i = 0; i<n; i++) { if (i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ') { if(str[i] >= 'a' && str[i]<='z') { str[i] = (char)(('A'-'a') + str[i] ); } } else if (str[i] >= 'A' && str[i] <= 'Z') { str[i] = (char)(str[i] + ('a' - 'A')); } } return 0; } int main(int argc, char const *argv[]) { char str[] = {"sUNIDHi bAnSAL"}; int n = sizeof(str)/sizeof(str[0]); firstupper(str, n); printf("%s\n", str); return 0; }
आउटपुट
Sunidhi Bansal