কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্রিংয়ের সব স্বতন্ত্র অক্ষল ক्रमানুসারে প্রিন্ট করা

এই সমস্যায় একটি স্ট্রিং দেওয়া আছে। আমাদের স্ট্রিংয়ের সব স্বতন্ত্র অক্ষরগুলো স্ট্রিংয়েতে যেভাবে আছে সেজন্য প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট: tutorials Point
আউটপুট: uralsPn

এই সমস্যাটি সমাধানের একাধিক পদ্ধতি আছে কিন্তু সবচেয়ে কার্যকর পদ্ধতিটি আলোচনা করা হলো। সাধারণ পদ্ধতিতে লুপের নেস্টিং থাকে।

এখানে ২৫৬ আকারের দুটি অ্যারে ব্যবহার করা হবে (৮-বিট ক্যারেক্টার সংরক্ষণের জন্য)।

প্রথমে কাউন্টার অ্যারের সব মান ০ এবং ইনডেক্স অ্যারের সব মান n (স্ট্রিংর দৈর্ঘ্য) দিয়ে ইনিশিয়ালাইজ করা হবে। স্ট্রিং ট্রাভার্সালের সময় প্রতিটি ক্যারেক্টার 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++-এ দুটি স্ট্রিংয়ের কমন ক্যারেক্টর অ্যালফাবেটিক্যালি প্রিন্ট করুন

  2. C++-এ getline (string) ফাংশন

  3. স্ট্রিং-এর সকল সাবস্ট্রিং প্রিন্ট (C++)

  4. C++-এ স্ট্রিং-এর সব ক্যারেক্টার টগল করা