এখানে আমরা দেখব কীভাবে C++-এ স্ট্রিং থেকে সব ইন্টিজার এক্সট্র্যাক্ট করা যায়। আমরা একটি স্ট্রিং রাখতে পারি যেখানে নম্বর এবং নন-নম্বর থাকে। আমরা সেটি থেকে সব নмериক ভ্যালু এক্সট্র্যাক্ট করব।
এই সমস্যা সমাধানের জন্য, আমরা C++-এ stringstream ক্লাস ব্যবহার করব। আমরা স্ট্রিংটি ওয়ার্ড বাই ওয়ার্ড কাটব এবং তারপর এটি ইন্টিজার টাইপ ডেটায় কনভার্ট করার চেষ্টা করব। যদি কনভার্সন হয়, তবে সেটি ইন্টিজার এবং ভ্যালুটা প্রিন্ট করব।
ইনপুট: কিছু নম্বরসহ একটি স্ট্রিং "Hello 112 World 35 75" আউটপুট: 112 35 75
অ্যালগরিদম
স্টেপ ১: একটি নম্বর স্ট্রিং নিন স্টেপ ২: এটিকে আলাদা আলাদা ওয়ার্ডে ভাগ করুন স্টেপ ৩: যদি কোনো ওয়ার্ড ইন্টিজার টাইপ ডেটায় কনভার্ট হয়, তবে সেটি প্রিন্ট করুন স্টেপ ৪: শেষ
উদাহরণ কোড
#include<iostream>
#include<sstream>
using namespace std;
void getNumberFromString(string s) {
stringstream str_strm;
str_strm << s; // স্ট্রিং s কে stringstream-এ কনভার্ট
string temp_str;
int temp_int;
while(!str_strm.eof()) {
str_strm >> temp_str; // ওয়ার্ডগুলো এক এক করে temp_str-এ নিন
if(stringstream(temp_str) >> temp_int) { // স্ট্রিংকে ইন্ট কনভার্ট চেষ্টা
cout << temp_int << " ";
}
temp_str = ""; // temp স্ট্রিং ক্লিয়ার
}
}
main() {
string my_str = "Hello 112 World 35 75";
getNumberFromString(my_str);
}
আউটপুট
112 35 75