একটি নমুনা মেলে অক্ষরগুলি মুছে ফেলা

C++:
একটি নমুনা মেলে অক্ষরগুলি মুছে ফেলা

কিভাবে:

আসুন erase এবং remove_if-এর সাথে ল্যাম্বডা এক্সপ্রেশনগুলি ব্যবহার করে অক্ষরগুলি মুছে ফেলি। এখানে একটি দ্রুত উদাহরণ দেওয়া হল:

#include <iostream>
#include <algorithm>
#include <string>

int main() {
    std::string data = "B4n4n4!";

    // সমস্ত সংখ্যা সংকেত অপসারণ
    data.erase(std::remove_if(data.begin(), data.end(), ::isdigit), data.end());
    
    std::cout << data << std::endl; // আউটপুট: Bnn!
    
    return 0;
}

নমুনা আউটপুট:

Bnn!

গভীর ডুব

<algorithm> হেডার থেকে std::remove_if অ্যালগরিদমটি আসলে স্ট্রিংটিকে ছোট করে না; এটি উপাদানগুলিকে পুনর্বিন্যাস করে এবং নতুন যৌক্তিক শেষে একটি নির্দেশক ফেরত দেয়। তারপরে std::string ক্লাসের erase পদ্ধতি শেষ থেকে “মৃত কাঠ” অপসারণ করে। এই কম্বো C++98 এর সাথে এসেছে এবং এফিসিয়েন্ট এবং জনপ্রিয় রয়ে গেছে।

বিকল্প? জটিল প্যাটার্নের জন্য, regex (<regex>) হল আপনার সুইস আর্মি ছুরি। তবে, সাধারণ কাজের জন্য এটি বেশি।

বিস্তারিত? std::remove_if এবং এই ধরনের অ্যালগরিদমগুলি ইটারেটরগুলির ওপর নির্ভর করে, যা C++ মাঝ-৯০ এর দশকে স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি (STL) থেকে গ্রহণ করেছিল। তারা জেনেরিক প্রোগ্রামিংকে শক্তি দেয়, নিশ্চিত করে যে আপনার কাটা-ছেঁটা কোড স্ট্রিং, লিস্ট, ইত্যাদি উপর কাজ করে।

আরও দেখুন