परिचय
इस ट्यूटोरियल में हम दी गई स्ट्रिंग में पहले अपरकेस (uppercase) अक्षर को ढूंढना सीखेंगे। आइए एक उदाहरण देखते हैं।
इनपुट - Tutorialspoint
आउटपुट - T
इटरेटिव (पुनरावृत्त) विधि
चरण
- स्ट्रिंग को इनिशियलाइज़ करें।
- स्ट्रिंग पर पुनरावृत्ति करें।
- isupper मेथड का उपयोग करके जांचें कि वर्तमान कैरेक्टर अपरकेस है या नहीं।
- यदि कैरेक्टर अपरकेस है तो वर्तमान कैरेक्टर वापस करें।
उदाहरण कोड
#include <bits/stdc++.h>
using namespace std;
char firstUpperCaseChar(string str) {
for (int i = 0; i < str.length(); i++)
if (isupper(str[i])) {
return str[i];
}
return 0;
}
int main() {
string str = "Tutorialspoint";
char result = firstUpperCaseChar(str);
if (result == 0) {
cout << "No uppercase letter" << endl;
} else {
cout << result << endl;
}
return 0;
}
आउटपुट
T
रिकर्सिव (पुनरावर्ती) विधि
चरण
- स्ट्रिंग को इनिशियलाइज़ करें।
- एक रिकर्सिव फंक्शन लिखें जो दो पैरामीटर स्वीकार करे: स्ट्रिंग और इंडेक्स।
- यदि वर्तमान कैरेक्टर स्ट्रिंग का अंत है तो वापस लौटें।
- यदि वर्तमान कैरेक्टर अपरकेस है तो वर्तमान कैरेक्टर वापस करें।
उदाहरण कोड
#include <bits/stdc++.h>
using namespace std;
char firstUpperCaseChar(string str, int i = 0) {
if (str[i] == '\0') {
return 0;
}
if (isupper(str[i])) {
return str[i];
}
return firstUpperCaseChar(str, i + 1);
}
int main() {
string str = "Tutorialspoint";
char result = firstUpperCaseChar(str);
if (result == 0) {
cout << "No uppercase letter";
} else {
cout << result << endl;
}
return 0;
}
आउटपुट
T
निष्कर्ष
दोनों विधियां समान परिणाम देती हैं। इटरेटिव विधि सरल और मेमोरी-कुशल है, जबकि रिकर्सिव विधि एल्गोरिदमिक सोच को दर्शाती है। यदि स्ट्रिंग में कोई अपरकेस अक्षर नहीं है, तो दोनों 0 वापस करते हैं। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।