কম্পিউটার

C++ এ একটি কমা-ডিলিমিটেড std::স্ট্রিং পার্স করা হচ্ছে


এই প্রোগ্রামে আমরা দেখব কিভাবে C++ এ কমা-ডিলিমিটেড স্ট্রিং পার্স করা যায়। আমরা একটি স্ট্রিং রাখব যেখানে কিছু পাঠ্য রয়েছে এবং সেগুলি কমা দ্বারা সীমাবদ্ধ করা হয়েছে। এই প্রোগ্রামটি কার্যকর করার পরে, এটি সেই স্ট্রিংগুলিকে একটি ভেক্টর টাইপ অবজেক্টে বিভক্ত করবে।

তাদের বিভক্ত করতে আমরা getline() ফাংশন ব্যবহার করছি। এই ফাংশনের মৌলিক সিনট্যাক্স হল:

getline (input_stream, string, delim)

এই ফাংশনটি ইনপুট স্ট্রিম থেকে একটি স্ট্রিং বা একটি লাইন পড়তে ব্যবহৃত হয়৷

Input: Some strings "ABC,XYZ,Hello,World,25,C++"
Output: Separated string ABC XYZ Hello World 25 C++

অ্যালগরিদম

Step 1: Create stream from given string
Step 2: While the stream is not completed
Step 2.1: Take item before comma
Step 2.2: Add item into a vector
Step 3: Return the vector

উদাহরণ কোড

#include<iostream>
#include<vector>
#include<sstream>
using namespace std;
main() {
   string my_str = "ABC,XYZ,Hello,World,25,C++";
   vector<string> result;
   stringstream s_stream(my_str); //create string stream from the string
   while(s_stream.good()) {
      string substr;
      getline(s_stream, substr, ','); //get first string delimited by comma
      result.push_back(substr);
   }
   for(int i = 0; i<result.size(); i++) {    //print all splitted strings
      cout << result.at(i) << endl;
   }
}

আউটপুট

ABC
XYZ
Hello
World
25
C++

  1. কিভাবে একটি std::string এবং একটি int C++ এ সংযুক্ত করবেন?

  2. কিভাবে একটি একক অক্ষর সি++ এ স্ট্রিং এ রূপান্তর করবেন?

  3. কিভাবে একটি std::string const char* বা char* এ C++ এ রূপান্তর করবেন?

  4. C++ এ একটি স্ট্রিংকে টোকেনাইজ করবেন?