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

C++-এ Stringstream


এখানে আমরা C++-এ স্ট্রিং স্ট্রিম (stringstream) সম্পর্কে আলোচনা করব। স্ট্রিং স্ট্রিম একটি স্ট্রিং অবজেক্টকে একটি স্ট্রিমের সাথে সংযুক্ত করে। এর মাধ্যমে আমরা একটি স্ট্রিং থেকে ইনপুট নিতে পারি, যেন সেটি `cin` এর মতো একটি ইনপুট স্ট্রিম।

Stringstream-এ বিভিন্ন পদ্ধতি রয়েছে। নিচে গুরুত্বপূর্ণগুলো দেওয়া হলো:

  • clear(): স্ট্রিমটি পরিষ্কার করতে ব্যবহৃত হয়।
  • str(): স্ট্রিমে উপস্থিত স্ট্রিং অবজেক্টটি পাওয়া বা সেট করতে ব্যবহৃত হয়।
  • operator << : একটি স্ট্রিংকে stringstream-এ যোগ করতে ব্যবহৃত হয়।
  • operator >> : stringstream অবজেক্ট থেকে ডেটা পড়তে ব্যবহৃত হয়।

চলুন স্ট্রিং স্ট্রিমের দুটি উদাহরণ দেখি। প্রথম প্রোগ্রামে আমরা একটি স্ট্রিংকে আলাদা আলাদা শব্দে ভাগ করব।

উদাহরণ ১: শব্দ ভাগ করা

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string str("Hello from the dark side");
    string tmp; // প্রতিটি ইটারেশনে শব্দ সংরক্ষণের জন্য
    stringstream str_strm(str);
    vector<string> words; // শব্দগুলো ধারণ করার ভেক্টর

    while (str_strm >> tmp) {
        // এখানে tmp-এর জন্য উপযুক্ত চেক যোগ করা উচিত (যেমন খালি কিনা)
        // 또한 চিহ্ন (!, ., ? ইত্যাদি) সরাতে পারে
        // অবশেষে ভেক্টরে যোগ করুন
        words.push_back(tmp);
    }
    for(int i = 0; i < words.size(); i++)
        cout << words[i] << endl;
}

আউটপুট

Hello
from
the
dark
side

এখন আমরা স্ট্রিং স্ট্রিম ব্যবহার করে ডেসিমেল থেকে হেক্সাডেসিমেলে রূপান্তর করব।

উদাহরণ ২: ডেসিমেল থেকে হেক্সাডেসিমেল

#include <iostream>
#include <sstream>
using namespace std;

int main() {
    int decimal = 61;
    stringstream my_ss;
    my_ss << hex << decimal;
    string res = my_ss.str();
    cout << "The hexadecimal value of 61 is: " << res;
}

আউটপুট

The hexadecimal value of 61 is: 3d
  1. C++ প্রোগ্রামিং-এ stringstream ব্যবহার

  2. C++-এ String at() মেথড ব্যবহার

  3. C++-এ স্ট্রিং টোকেনাইজেশন: স্ট্রিম এবং getline() ব্যবহার

  4. C++-এ স্ট্রিং টোকেনাইজ (Tokenize) করা