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

C++ में पॉइंटर का उपयोग करके स्ट्रिंग में वॉवेल्स गिनना


समस्या विवरण

पॉइंटर का उपयोग करके स्ट्रिंग में वॉवेल्स की संख्या ढूंढने के लिए आपको स्ट्रिंग, वॉवेल्स और स्ट्रिंग के साथ पॉइंटर का उपयोग कैसे करना है, यह समझने की आवश्यकता है।

स्ट्रिंग कैरेक्टर्स की एक सरणी है। और वॉवेल्स {a, e, i, o, u} सेट के कैरेक्टर्स हैं। पॉइंटर एक वेरिएबल है जो किसी वेरिएबल की मेमोरी लोकेशन का मान संग्रहीत करता है।

स्ट्रिंग में वॉवेल्स की संख्या ढूंढने के लिए, हम स्ट्रिंग को पार करेंगे और फिर प्रत्येक कैरेक्टर की तुलना वॉवेल्स से करेंगे और यदि यह बराबर है तो काउंटर बढ़ाएंगे अन्यथा नहीं।

नीचे दिए गए कोड की शर्त यह है कि इसमें एक स्ट्रिंग की आवश्यकता है जिसमें सभी लोअरकेस कैरेक्टर्स हों। यदि नहीं, तो आप tolower() मेथड का उपयोग कर सकते हैं।

एल्गोरिदम

countVowels(str):
    count = 0
    ptr = str
    while *ptr != '\0':
        if *ptr in {a,e,i,o,u}:
            count++
        ptr++
    return count

उदाहरण

#include <iostream>
#include <cctype>  // tolower() के लिए
using namespace std;

int countVowels(const char *str) {
    int count = 0;
    const char *ptr = str;

    while (*ptr != '\0') {
        char ch = tolower(*ptr);  // अपरकेस हैंडल करने के लिए
        if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
            count++;
        }
        ptr++;
    }
    return count;
}

int main() {
    char str[] = "i love tutorials point";
    char *ptr = str;
    int count = 0;

    for (ptr; *ptr != '\0'; ptr++) {
        if (*ptr == 'a' || *ptr == 'e' || *ptr == 'i' || *ptr == 'o' || *ptr == 'u') {
            count++;
        }
    }

    cout << "Vowels in the string: " << count;
    return 0;
}

आउटपुट

Vowels in the string: 9

बेहतर संस्करण (केस-इनसेंसिटिव)

int countVowelsCaseInsensitive(const char *str) {
    int count = 0;
    while (*str) {
        char ch = tolower(*str);
        switch (ch) {
            case 'a': case 'e': case 'i': case 'o': case 'u':
                count++;
        }
        str++;
    }
    return count;
}

std::string के साथ उपयोग

int countVowelsString(const string &s) {
    int count = 0;
    for (char ch : s) {
        ch = tolower(ch);
        if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
            count++;
    }
    return count;
}

समय जटिलता

O(n) जहां n स्ट्रिंग की लंबाई है

स्थान जटिलता

O(1) - केवल काउंटर वेरिएबल का उपयोग

  1. Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनने की आवश्यकता है। यहां हम पूरी स्ट्रिंग को पार करते हैं और जांचते हैं कि प्रत्येक वर्ण स्वर है या नहीं और काउंट बढ़ाते हैं। आ

  1. - पायथन प्रोग्राम: सेट का उपयोग करके दिए गए स्ट्रिंग में वॉवेल्स की संख्या गिनना

    इस प्रोग्राम में, एक यूजर इनपुट स्ट्रिंग दी गई है। हमें इस स्ट्रिंग में वॉवेल्स की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनऑर्डर्ड कलेक्शन डेटा टाइप है जो इटरेबल, म्यूटेबल है और इसमें कोई डुप्लिकेट एलिमेंट्स नहीं होते।उदाहरणInput str1=pythonprogram Output 3एल्गोरिदमचरण 1:

  1. - पायथन प्रोग्राम: सेट का उपयोग करके दिए गए स्ट्रिंग में वॉवेल्स की संख्या गिनना

    इस प्रोग्राम में, एक यूजर इनपुट स्ट्रिंग दी गई है। हमें इस स्ट्रिंग में वॉवेल्स की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनऑर्डर्ड कलेक्शन डेटा टाइप है जो इटरेबल, म्यूटेबल है और इसमें कोई डुप्लिकेट एलिमेंट्स नहीं होते।उदाहरणInput: str1=pythonprogram Output: 3एल्गोरिदमचरण 1