স্ট্রিংকে শব্দ/টোকেনে ভাগ করার দুটি সাধারণ পদ্ধতি।
পদ্ধতি ১: stringstream (স্পেস ডিলিমিটার)
#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-র চেক (empty, punctuation strip ইত্যাদি)
words.push_back(tmp);
}
// words = {"Hello", "from", "the", "dark", "side"}
}
পদ্ধতি ২: getline কাস্টম ডিলিমিটার দিয়ে
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main() {
stringstream str_strm("Hello,from,the,dark,side");
string tmp;
vector<string> words;
char delim = ','; // কাস্টম ডিলিমিটার
while(getline(str_strm, tmp, delim)) {
words.push_back(tmp);
}
// words = {"Hello", "from", "the", "dark", "side"}
}
সীমাবদ্ধতা: `stringstream` মাল্টি-ক্যারেক্টার ডিলিমিটার সাপোর্ট করে না। জটিল পার্সিংয়ের জন্য std::regex, Boost.Tokenizer, বা র্যাঞ্জ-ভিত্তিক লাইব্রেরি (C++20 views::split) ব্যবহার করুন।