Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में स्ट्रिंग में पहला अपरकेस अक्षर ढूंढना (इटरेटिव और रिकर्सिव)


परिचय

इस ट्यूटोरियल में हम दी गई स्ट्रिंग में पहले अपरकेस (uppercase) अक्षर को ढूंढना सीखेंगे। आइए एक उदाहरण देखते हैं।

इनपुट - Tutorialspoint

आउटपुट - T

इटरेटिव (पुनरावृत्त) विधि

चरण

  1. स्ट्रिंग को इनिशियलाइज़ करें।
  2. स्ट्रिंग पर पुनरावृत्ति करें।
  3. isupper मेथड का उपयोग करके जांचें कि वर्तमान कैरेक्टर अपरकेस है या नहीं।
  4. यदि कैरेक्टर अपरकेस है तो वर्तमान कैरेक्टर वापस करें।

उदाहरण कोड

#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

रिकर्सिव (पुनरावर्ती) विधि

चरण

  1. स्ट्रिंग को इनिशियलाइज़ करें।
  2. एक रिकर्सिव फंक्शन लिखें जो दो पैरामीटर स्वीकार करे: स्ट्रिंग और इंडेक्स।
  3. यदि वर्तमान कैरेक्टर स्ट्रिंग का अंत है तो वापस लौटें।
  4. यदि वर्तमान कैरेक्टर अपरकेस है तो वर्तमान कैरेक्टर वापस करें।

उदाहरण कोड

#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 वापस करते हैं। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।


  1. C++ में बाइनरी ट्री में पूर्ण नोड्स गिनना (इटरेटिव और रिकर्सिव) C++ में बाइनरी ट्री में पूर्ण नोड्स गिनना (इटरेटिव और रिकर्सिव)

    हमें एक बाइनरी ट्री दिया गया है और कार्य बाइनरी ट्री में उपलब्ध पूर्ण नोड्स की संख्या की गणना करना है इटरेटिव और रिकर्सिव दृष्टिकोण का उपयोग करके। पूर्ण नोड्स वे नोड्स हैं जिनके दोनों बच्चे हैं और कोई बच्चा null नहीं है। ध्यान दें कि पूर्ण नोड्स में हम ठीक दो बच्चों वाले नोड्स पर विचार करते हैं। बा

  1. C++ में बाइनरी ट्री में आधे नोड्स गिनना (इटरेटिव और रिकर्सिव) C++ में बाइनरी ट्री में आधे नोड्स गिनना (इटरेटिव और रिकर्सिव)

    हमें एक बाइनरी ट्री दिया गया है और कार्य बाइनरी ट्री में उपलब्ध आधे नोड्स की संख्या की गणना करना है इटरेटिव और रिकर्सिव दृष्टिकोण का उपयोग करके। आधे नोड्स वे नोड्स हैं जिनका केवल एक बच्चा है और दूसरा बच्चा null है। ध्यान दें कि आधे नोड्स में हम लीफ नोड्स पर विचार नहीं करते। उदाहरण इनपुट: बाइनरी ट्र

  1. - C++ में स्ट्रिंग को नंबर में और नंबर को स्ट्रिंग में बदलना

    इस सेक्शन में हम देखेंगे कि स्ट्रिंग को नंबर में और नंबर को स्ट्रिंग में कैसे बदलें। पहले हम देखेंगे कि स्ट्रिंग को नंबर में कैसे बदलें। स्ट्रिंग से नंबर रूपांतरण यहां हम देखेंगे कि नंबर स्ट्रिंग को इंटीजर टाइप डेटा में कैसे बदलें। हम इस समस्या को atoi() फंक्शन का उपयोग करके हल कर सकते हैं। यह फंक