C++-এ স্ট্রিং ইন্টারঅ্যাকশন এবং স্ট্রিং স্ট্রিম ব্যবহারের মাধ্যমে টেক্সট ম্যানিপুলেশন এবং ফাইল/ইনপুট/আউটপুট অপারেশনগুলো সহজে করা যায়। স্ট্রিং ক্লাস এবং স্ট্রিং স্ট্রিমের সাহায্যে আপনি স্ট্রিংগুলোতে বিভিন্ন কার্যকরী পরিবর্তন করতে পারেন এবং সহজেই ডেটা এক্সচেঞ্জ করতে পারেন। নিচে বিস্তারিতভাবে আলোচনা করা হলো:
১. স্ট্রিং ইন্টারঅ্যাকশন (String Interaction)
C++-এ স্ট্রিং ইন্টারঅ্যাকশন হল বিভিন্ন স্ট্রিং অপারেশন, যেমন স্ট্রিং যোগ করা, তুলনা করা, এবং কিছু অংশ কেটে নেওয়া। সি++ এর std::string ক্লাসের মাধ্যমে সহজেই স্ট্রিং এর বিভিন্ন ম্যানিপুলেশন করা সম্ভব।
কিছু সাধারণ স্ট্রিং ইন্টারঅ্যাকশন:
- স্ট্রিং যোগ করা: দুটি স্ট্রিং একত্রিত করা।
- স্ট্রিং তুলনা: দুটি স্ট্রিংয়ের সমতা চেক করা।
- স্ট্রিং কাটা: একটি স্ট্রিং থেকে অংশ আলাদা করা।
- স্ট্রিং সাইজ: স্ট্রিং এর দৈর্ঘ্য বা সাইজ নির্ধারণ করা।
উদাহরণ:
#include <iostream>
#include <string>
int main() {
// স্ট্রিং তৈরি
std::string str1 = "Hello";
std::string str2 = " World!";
// স্ট্রিং যোগ করা
std::string result = str1 + str2;
std::cout << "Concatenated string: " << result << std::endl;
// স্ট্রিং তুলনা
if (str1 == "Hello") {
std::cout << "str1 is equal to 'Hello'" << std::endl;
}
// স্ট্রিং কাটা
std::string substring = result.substr(0, 5); // প্রথম 5টি চরিত্র কাটা
std::cout << "Substring: " << substring << std::endl;
// স্ট্রিং সাইজ
std::cout << "Length of result: " << result.size() << std::endl;
return 0;
}আউটপুট:
Concatenated string: Hello World!
str1 is equal to 'Hello'
Substring: Hello
Length of result: 13২. স্ট্রিং স্ট্রিম (String Stream)
স্ট্রিং স্ট্রিম C++-এ একটি গুরুত্বপূর্ণ ফিচার, যা std::stringstream ক্লাসের মাধ্যমে বাস্তবায়িত হয়। এটি ইনপুট এবং আউটপুট স্ট্রিমের মতো কাজ করে, তবে এটি স্ট্রিং এর মাধ্যমে ডেটা এক্সচেঞ্জ করে। std::stringstream ব্যবহার করে আপনি সহজেই স্ট্রিং থেকে ডেটা পড়তে এবং স্ট্রিংয়ে ডেটা লেখতে পারেন।
std::stringstream ক্লাসটি std::istringstream (ইনপুট) এবং std::ostringstream (আউটপুট) হিসেবে দুটি আলাদা ক্লাসে বিভক্ত।
সাধারণ ব্যবহার:
- স্ট্রিং থেকে ইনপুট:
std::istringstreamব্যবহার করে স্ট্রিং থেকে ডেটা পড়া। - স্ট্রিংয়ে আউটপুট:
std::ostringstreamব্যবহার করে স্ট্রিংয়ে ডেটা লেখা। - স্ট্রিং স্ট্রিম:
std::stringstreamব্যবহার করে উভয় অপারেশন করা।
উদাহরণ:
#include <iostream>
#include <sstream>
#include <string>
int main() {
// স্ট্রিং স্ট্রিম তৈরি
std::string data = "123 456 789";
// ইনপুট স্ট্রিম
std::istringstream inputStream(data);
int num1, num2, num3;
// স্ট্রিং থেকে ডেটা পড়া
inputStream >> num1 >> num2 >> num3;
std::cout << "Read values: " << num1 << " " << num2 << " " << num3 << std::endl;
// আউটপুট স্ট্রিম
std::ostringstream outputStream;
outputStream << "The numbers are: " << num1 << ", " << num2 << ", " << num3;
std::cout << "Formatted output: " << outputStream.str() << std::endl;
// স্ট্রিং স্ট্রিম (input + output)
std::stringstream ss;
ss << "The total is " << (num1 + num2 + num3);
std::cout << "Total message: " << ss.str() << std::endl;
return 0;
}আউটপুট:
Read values: 123 456 789
Formatted output: The numbers are: 123, 456, 789
Total message: The total is 1368স্ট্রিং স্ট্রিমের বিভিন্ন সুবিধা:
- ডেটা পার্সিং (Data Parsing): স্ট্রিং থেকে সহজে ডেটা পড়ে বিভিন্ন ধরনের ভেরিয়েবলে রূপান্তর করা যায় (যেমন, ইন্টেজার, ডাবল ইত্যাদি)।
- স্ট্রিংয়ের মধ্যে ইনপুট/আউটপুট অপারেশন: স্ট্রিং স্ট্রিম ব্যবহার করে ইনপুট এবং আউটপুট একসাথে করা যায়, যা কোডকে আরও পরিষ্কার এবং কার্যকর করে তোলে।
- ডেটা ফরম্যাটিং: আপনি
ostringstreamব্যবহার করে স্ট্রিং ফরম্যাট করতে পারেন, যেমন সংখ্যা এবং টেক্সট একত্রিত করা।
উপসংহার
C++-এ স্ট্রিং ইন্টারঅ্যাকশন এবং স্ট্রিং স্ট্রিম ব্যবহার করার মাধ্যমে স্ট্রিং ম্যানিপুলেশন এবং ডেটা এক্সচেঞ্জের কাজ সহজ করা যায়। std::string ক্লাস স্ট্রিং ম্যানিপুলেশনের জন্য একটি শক্তিশালী টুল, এবং std::stringstream স্ট্রিং থেকে ইনপুট এবং স্ট্রিংয়ে আউটপুট করার জন্য একাধিক সুবিধা প্রদান করে। এগুলো দিয়ে আপনি আরো কার্যকরী ও পরিষ্কার কোড লিখতে পারবেন।
Read more