কম্পিউটার টিউটোরিয়াল

স্ট্রিং থেকে একটি নির্দিষ্ট শব্দ বাদ দেওয়া C++-এ

এই আর্টিকেলে, আমরা একটি দেয়া স্ট্রিং থেকে একটি নির্দিষ্ট শব্দ বাদ দেওয়ার সমস্যা সমাধান করব। উদাহরণস্বরূপ −

ইনপুট : 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, ইত্যাদি। আশা করি আপনি এই আর্টিকেলটিকে সহায়ক খুঁজে পাবেন।

  1. C++-এ স্ট্রিং থেকে নির্দিষ্ট ক্যারেক্টার রিমুভ করা: erase() এবং remove()

  2. C++-এ স্ট্রিংর ট্রেলিং জিরো রিমুভ করা

  3. C++-এ std::string থেকে স্পেস রিমুভ করা

  4. সি শার্পে দেওয়া স্ট্রিং থেকে সব ডুপ্লিকেট মুছে ফেলা