ধরুন আমাদের একটি স্ট্রিং আছে যেখানে আমাদের কয়েকটি পূর্ণসংখ্যা আছে যা কমা দ্বারা পৃথক করা হয়েছে। আমাদের তাদের আলাদা করতে হবে এবং প্রতিটি পূর্ণসংখ্যাকে আলাদা লাইনে প্রদর্শন করতে হবে। এটি করার জন্য আমরা C++ এ স্ট্রিংস্ট্রিম (এসস্ট্রিম লাইব্রেরির অধীনে) ব্যবহার করব। এটি একটি স্ট্রিং ভিত্তিক স্ট্রিম ক্লাস C++ এ উপস্থিত। আমরা এক্সট্রাকশন অপারেটর (<<) কিছু এক্সট্র্যাক্ট করতে, ইনসার্শন অপারেটর (>>) কিছু ঢোকাতে এবং স্ট্রিং ডিভাইস অবজেক্টের অন্তর্নিহিত বিষয়বস্তু সেট করতে str() ফাংশন ব্যবহার করতে পারি।
সুতরাং, যদি ইনপুট s ="56,9,85,256,47" এর মত হয়, তাহলে আউটপুট হবে
56 9 85 256 47
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি অ্যারে take_int(string str)
সংজ্ঞায়িত করুন-
ss
নামে একটি স্ট্রিংস্ট্রিম অবজেক্ট তৈরি করুন -
একটি অ্যারের ফলাফল সংজ্ঞায়িত করুন
-
ss থেকে temp এ নেওয়া নতুন পূর্ণসংখ্যা আইটেমটি শূন্য নয়, করুন:
-
ফলাফলের শেষে tmp ঢোকান
-
একক অক্ষর বের করে কমা অক্ষর এড়িয়ে যান
-
-
ফেরত ফলাফল
-
-
প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন:
-
একটি অ্যারে পূর্ণসংখ্যা সংজ্ঞায়িত করুন =take_int(গুলি)
-
আরম্ভ করার জন্য i :=0, যখন i <পূর্ণসংখ্যার আকার, আপডেট (i 1 দ্বারা বাড়ান), করবেন:
-
পূর্ণসংখ্যা প্রদর্শন করুন[i]
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> #include <sstream> #include <vector> using namespace std; vector<int> take_int(string str) { stringstream ss(str); vector<int> result; char ch; int tmp; while(ss >> tmp) { result.push_back(tmp); ss >> ch; } return result; } int main(){ string s = "56,9,85,256,47"; vector<int> integers = take_int(s); for(int i = 0; i < integers.size(); i++) cout << integers[i] << "\n"; }
ইনপুট
56,9,85,256,47
আউটপুট
56 9 85 256 47