এই আর্টিকেলে, আমরা একটি দেয়া স্ট্রিং থেকে একটি নির্দিষ্ট শব্দ বাদ দেওয়ার সমস্যা সমাধান করব। উদাহরণস্বরূপ −
ইনপুট : str = "remove a given word", word = "remove" আউটপুট : "a given word" ইনপুট : str = "god is everywhere", word = "is" আউটপুট : "god everywhere"
সমাধানের পদ্ধতি
উদাহরণস্বরূপ, আমরা একটি স্ট্রিং থেকে শব্দ বাদ দেওয়ার জন্য একটি সহজ পদ্ধতি ব্যবহার করতে পারি।
- প্রথমে, দেয়া স্ট্রিংকে ২-D ম্যাট্রিক্স ফর্মে রূপান্তর করুন, যেখানে প্রতিটি শব্দ প্রতিটি রোয়ে সংরক্ষিত থাকে।
- ম্যাট্রিক্সে শব্দটি খুঁজে বের করুন এবং যেখানে শব্দটি পাওয়া যায় সেটি নাল ক্যারেক্টার দিয়ে রিপ্লেস করুন।
- শেষে, রি-অর্ডার্ড স্ট্রিং প্রিন্ট করুন।
উদাহরণ প্রোগ্রাম
#include <bits/stdc++.h>
using namespace std;
int remove_word(string str, char word[]) {
char matrix[10][30];
int i = 0, j = 0, k = 0, len1 = 0, len2 = 0;
// স্ট্রিংর প্রতিটি শব্দ ২-D ম্যাট্রিক্সের রোয়ে রাখা।
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ') {
matrix[k][j] = '\0';
k++;
j = 0;
} else {
matrix[k][j] = str[i];
j++;
}
}
// দেয়া স্ট্রিংএ শব্দটি খুঁজে বের করা এবং শব্দটি পাওয়া গেলে সেই রোতে নাল ক্যারেক্টার রাখা।
matrix[k][j] = '\0';
j = 0;
for (i = 0; i < k + 1; i++) {
if (strcmp(matrix[i], word) == 0) {
matrix[i][j] = '\0';
}
}
j = 0;
// রি-অর্ডার্ড স্ট্রিং প্রিন্ট করা।
for (i = 0; i < k + 1; i++) {
if (matrix[i][j] == '\0')
continue;
else
cout << matrix[i] << " ";
}
cout << "\n";
}
int main() {
char str1[] = "remove a given word", word1[] = "remove";
char str2[] = "god is everywhere", word2[] = "is";
// শব্দ বাদ দিয়ে প্রিন্ট করার ফাংশন কল
remove_word(str1, word1);
remove_word(str2, word2);
return 0;
}
আউটপুট
a given word god everywhere
উপরোক্ত কোডের ব্যাখ্যা
- স্ট্রিং এবং অ্যারে কিছু ভ্যালু দিয়ে ইনিশিয়ালাইজ করা এবং শব্দ বাদ দেওয়ার ফাংশন কল করা।
- একটি লুপ দিয়ে স্ট্রিংর প্রতিটি শব্দ ২-D ম্যাট্রিক্সের প্রতিটি রোয়ে রাখা, স্পেস পাওয়া পর্যন্ত প্রতিটি ব্লকে ক্যারেক্টার সংরক্ষণ করা।
- strcmp() ফাংশন দিয়ে স্ট্রিংকে শব্দের সাথে কম্পেয়ার করা এবং শব্দটি যেখানে পাওয়া যায় সেটি নাল ভ্যালু দিয়ে রিপ্লেস করা।
- শেষে, ম্যাট্রিক্সের প্রতিটি রো প্রিন্ট করে স্ট্রিং প্রিন্ট করা।
উপসংহার
এই আর্টিকেলে, একটি স্ট্রিং থেকে নির্দিষ্ট শব্দ বাদ দেওয়া নিয়ে আলোচনা করা হয়েছে যেখানে আমরা স্ট্রিংকে ২-D ম্যাট্রিক্সে সংরক্ষণ করে শব্দকে নাল ভ্যালু দিয়ে রিপ্লেস করেছি। আমরা এই সমস্যা C++ কোড দিয়ে সমাধান করেছি। যাইহোক, আমরা একই সমস্যা যেকোনো অন্য ল্যাঙ্গুয়েজ দিয়ে সমাধান করতে পারি যেমন C, Java, Python, ইত্যাদি। আশা করি আপনি এই আর্টিকেলটিকে সহায়ক খুঁজে পাবেন।