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

স্ট্রিং থেকে অ্যালফাবেট বাদ দিয়ে সব ক্যারেক্টার মুছে ফেলার C++ প্রোগ্রাম


স্ট্রিং-এ অ্যালফাবেট (a-z, A-Z) ছাড়া অন্য সব ক্যারেক্টার (ডিজিট, সিম্বল, স্পেস) মুছে ফেলা যায় শিফটিং (shifting) দিয়ে।

উদাহরণ কোড

#include <iostream>
using namespace std;

int main() {
    char str[100] = "String@123!!";
    int i, j;

    cout << "String before modification: " << str << endl;

    for (i = 0; str[i] != '\0'; ++i) {
        while (!((str[i] >= 'a' && str[i] <= 'z') ||
                 (str[i] >= 'A' && str[i] <= 'Z') ||
                 str[i] == '\0')) {
            for (j = i; str[j] != '\0'; ++j) {
                str[j] = str[j + 1];
            }
        }
    }

    cout << "String after modification: " << str;
    return 0;
}

আউটপুট

String before modification: String@123!!
String after modification: String

ব্যাখ্যা

  • বাইরের for লুপ স্ট্রিং ট্রাভার্স করে।
  • যদি ক্যারেক্টার অ্যালফাবেট বা NULL না হয়, তবে while লুপে ঢুকে।
  • ইনারের for লুপ (j = i থেকে) বামে শিফট করে: str[j] = str[j+1]। এতে বর্তমান নন-অ্যালফাবেট ক্যারেক্টার ওভাররাইট হয়।
  • while লুপ повтор হয় কারণ শিফট করার পর নতুন ক্যারেক্টার আসতে পারে সেই পজিশনে।

সীমাবদ্ধতা: O(n²) টাইম কমপ্লেক্সিটি। বড় স্ট্রিং için std::string এবং erase-remove ইডિયোম বা নতুন স্ট্রিং বানানো দ্রুত।

  1. সি শার্প প্রোগ্রাম: স্ট্রিং থেকে ডুপ্লিকেট ক্যারেক্টার মুছে ফেলা

  2. জাভা প্রোগ্রাম: স্ট্রিংয়ে ১ এবং ২ বাদ দিয়ে বাকি সব সংখ্যা মুছে ফেলা

  3. জাভাতে স্ট্রিং থেকে সব নন-অ্যালফাবেটিক্যাল ক্যারেক্টার রিমুভ করা

  4. পাইথন - অক্ষর ও সংখ্যা বাদে সব ক্যারেক্টার সরান