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

C++ में स्ट्रिंग के सभी विशिष्ट कैरेक्टर्स को क्रम में प्रिंट करना


इस समस्या में, हमें एक स्ट्रिंग दी गई है। हमारा कार्य स्ट्रिंग के सभी विशिष्ट कैरेक्टर्स को उस क्रम में प्रिंट करना है जिसमें वे स्ट्रिंग में दिखाई देते हैं।

उदाहरण

Input: tutorials Point 
Output: uralsPn

इस समस्या को हल करने के कई तरीके हैं लेकिन हम सबसे प्रभावी पर चर्चा करेंगे। सरल तरीके में लूप्स की नेस्टिंग शामिल है।

इसके लिए, हम 256 आकार के दो ऐरे का उपयोग करेंगे (8-बिट कैरेक्टर्स संग्रहीत किए जाते हैं)।

सबसे पहले हम काउंटर ऐरे के सभी मानों को 0 और इंडेक्स ऐरे के सभी मानों को n (स्ट्रिंग की लंबाई) से इनिशियलाइज़ करेंगे। स्ट्रिंग str के ट्रैवर्सल पर और प्रत्येक कैरेक्टर c के लिए, count[x] बढ़ाएं। यदि count[x] = 1, तो index[x] = i। यदि count[x] = 2, तो index[x] = n। इंडेक्स को सॉर्ट करें और कैरेक्टर्स प्रिंट करें।

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने वाला कोड:

#include <bits/stdc++.h> 
using namespace std; 

const int MAX_CHAR = 256; 

void printDistinctCharacters(string str) { 
    int n = str.length(); 
    int count[MAX_CHAR]; 
    int index[MAX_CHAR]; 
    for (int i = 0; i < MAX_CHAR; i++) { 
        count[i] = 0; 
        index[i] = n; 
    } 
    for (int i = 0; i < n; i++) { 
        char x = str[i]; 
        ++count[x]; 
        if (count[x] == 1 && x != ' ') 
            index[x] = i; 
        if (count[x] == 2) 
            index[x] = n; 
    } 
    sort(index, index + MAX_CHAR); 
    for (int i = 0; i < MAX_CHAR && index[i] != n; i++) 
        cout << str[index[i]] << " "; 
} 

int main() { 
    string str = "tutorialsPoint"; 
    cout << "All distinct Characters of the string '" << str << "' are :\n"; 
    printDistinctCharacters(str); 
    return 0; 
}

आउटपुट

All distinct Characters of the string 'tutorialsPoint' are - 
u r a l s P n

  1. - C++ में getline (string)

    इसका उपयोग स्ट्रीम से अनफॉर्मेटेड इनपुट के रूप में कैरेक्टर्स निकालने और उन्हें c-स्ट्रिंग के रूप में s में संग्रहीत करने के लिए किया जाता है, जब तक कि निकाला गया कैरेक्टर डिलिमिटिंग कैरेक्टर न हो, या n कैरेक्टर्स s में लिखे जा चुके हों (टर्मिनेटिंग नल कैरेक्टर सहित)। डिक्लेरेशन इस प्रकार है: basic

  1. - C++ में दिए गए स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम दिए गए स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करने के प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या कैरेक्टर्स का ऐरे दिया जाएगा। हमारा कार्य उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करना है। उदाहरण #include using namespace std; // सभी सबस्ट्रिंग प्रिंट करना void pr

  1. - C++ में स्ट्रिंग के सभी कैरेक्टर्स को टॉगल करना

    यह प्रोग्राम स्ट्रिंग के कैरेक्टर्स को अपरकेस में बदलता है। हालांकि, इस कार्य को C++ क्लास लाइब्रेरी के toUpper() मेथड का उपयोग करके आसानी से प्राप्त किया जा सकता है। लेकिन इस प्रोग्राम में, हम अपरकेस में कैरेक्टर्स के ASCII वैल्यू की गणना करके ऐसा करते हैं। एल्गोरिदम निम्नलिखित है: एल्गोरिदम शुरुआत