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) থেকে গ্রহণ করেছিল। তারা জেনেরিক প্রোগ্রামিংকে শক্তি দেয়, নিশ্চিত করে যে আপনার কাটা-ছেঁটা কোড স্ট্রিং, লিস্ট, ইত্যাদি উপর কাজ করে।
আরও দেখুন
std::remove_if
-এর জন্য C++ রেফারেন্স: https://en.cppreference.com/w/cpp/algorithm/removestd::string::erase
-এর জন্য C++ রেফারেন্স: https://en.cppreference.com/w/cpp/string/basic_string/erase- C++ এ ইটারেটরগুলি সম্পর্কে আরও জানুন: https://en.cppreference.com/w/cpp/iterator
- প্যাটার্ন মিলানোর জন্য
std::regex
কখন ব্যবহার করতে হবে: https://en.cppreference.com/w/cpp/regex