এই প্রোগ্রামের উদ্দেশ্য হলো C++ প্রোগ্রামিং কোড ব্যবহার করে একটি স্ট্রিং-এ নির্দিষ্ট শব্দকে তারকাচিহ্ন (*) দিয়ে প্রতিস্থাপন করা। ভেক্টর ও স্ট্রিং ক্লাসের অত্যাবশ্য ফাংশনগুলো এই ফলাফল অর্জনে গুরুত্বপূর্ণ ভূমিকা পালন করে। অ্যালগরিদমটি নিচে দেওয়া হলো:
অ্যালগরিদম
শুরু ধাপ-১: স্ট্রিং ইনপুট নিন ধাপ-২: স্ট্রিংকে শব্দে ভাগ করে অ্যারে লিস্টে সংরক্ষণ করুন ধাপ-৩: দৈর্ঘ্যের পর্যায় লুপ চালিয়ে একটি ভেরিয়েবলে তারকাচিহ্ন রাখুন ধাপ-৪: অ্যারে ট্রাভার্স করে প্রতিটি শব্দকে প্রতিস্থাপন করার শব্দের সাথে তুলনা করুন ধাপ-৫: প্রিন্ট করুন শেষ
উপরোক্ত অ্যালগরিদমের উপর ভিত্তি করে নিচের কোডটি লেখা হয়েছে। এখানে স্ট্রিং विभক্ত করার জন্য strtok() মেথড ব্যবহার করা হয়েছে যা ভেক্টর ক্লাসের অ্যারে লিস্ট টাইপ রিটার্ন করে।
উদাহরণ
#include <cstring>
#include <iostream>
#include <vector>
#include <string.h>
// স্ট্রিং স্প্লিট করার মেথড
std::vector<std::string> split(std::string str, std::string sep) {
char* cstr = const_cast<char*>(str.c_str());
char* current;
std::vector<std::string> arr;
current = strtok(cstr, sep.c_str());
while (current != NULL) {
arr.push_back(current);
current = strtok(NULL, sep.c_str());
}
return arr;
}
int main() {
std::vector<std::string> word_list;
std::cout << "string before replace::" << "Hello ajay yadav ! you ajay you are star" << std::endl;
std::cout << "word to be replaced::" << "ajay" << std::endl;
word_list = split("Hello ajay yadav ! you ajay you are star", " ");
std::string result = "";
// সেন্সর তৈরি করা যেটি প্রতিস্থাপন করার শব্দের দৈর্ঘ্যের সমান তারকাচিহ্ন
std::string stars = "";
std::string word = "ajay";
for (int i = 0; i < word.length(); i++)
stars += '*';
// এক্সট্র্যাক্ট করা শব্দের লিস্টের মাধ্যমে ইটারেট করা
int index = 0;
for (std::string i : word_list) {
if (i.compare(word) == 0)
// সেন্সর করা শব্দকে তৈরি করা তারকাচিহ্ন দিয়ে পরিবর্তন করা
word_list[index] = stars;
index++;
}
// শব্দগুলো জয়েন করা
for (std::string i : word_list) {
result += i + ' ';
}
std::cout << "output::" << result;
return 0;
}
উপরের কোডে দেখা যাচ্ছে যে, স্ট্রিং অপারেশন सम्बन्धিত সমস্ত কোড retrieveChar() মেথডে বান্ডেল করা হয়েছে, যা পরবর্তীতে প্রোগ্রামের main() এক্সিকিউশনে কল করা হয়।
আউটপুট
String before replace::Hello ajay yadav ! you ajay you are star Word to be replaced::ajay Output::Hello **** yadav ! you **** you are star