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

C++-এ সোর্স কোড থেকে কমেন্ট মুছে ফেলা

একটি C++ প্রোগ্রামের সোর্স কোড দেওয়া থাকলে, সেখান থেকে লাইন কমেন্ট (//) এবং ব্লক কমেন্ট (/* ... */) মুছে ফেলতে হবে।

ইনপুট উদাহরণ

source = ["/*Test program */", "int main()", "{ ", " // variable declaration ", "int a, b, c;", "/* This is a test", " multiline ", " comment for ", " testing */", "a = b + c;", "}"]

আউটপুট

["int main()","{ "," ","int a, b, c;","a = b + c;","}"]

সমাধানের পদ্ধতি

লাইন বাই লাইন পার্স করে কমেন্ট হ্যান্ডেল করা হয়।

  • removeComments(vector<string>& source) ফাংশন কমেন্ট-মুক্ত কোড রিটার্ন করবে।
  • একটি bool comment = false ভেরিয়েবল দিয়ে ব্লক কমেন্টের স্টেট ট্র্যাক করুন।
  • // পাওয়া গেলে বাকি লাইনটি ইগনোর করুন।
  • /* পাওয়া গেলে comment = true করুন এবং */ পাওয়া পর্যন্ত ক্যারেক্টার ইগনোর করুন।
  • কমেন্ট ব্লকের বাইরে থাকা ক্যারেক্টারগুলো রেজাল্ট স্ট্রিংয়ে যোগ করুন।
  • প্রতিটি লাইনের শেষে যদি ব্লক কমেন্টে না থাকা থাকে, তবে লাইনটি আউটপুটে যোগ করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

vector<string> removeComments(vector<string> &source) {
    vector<string> ans;
    string s;
    bool comment = false;
    for (int i = 0; i < source.size(); i++) {
        for (int j = 0; j < source[i].size(); j++) {
            if (!comment && j+1 < source[i].size() && 
                source[i][j]=='/' && source[i][j+1]=='/')
                break;
            else if (!comment && j+1 < source[i].size() && 
                     source[i][j]=='/' && source[i][j+1]=='*') {
                comment = true; j++;
            }
            else if (comment && j+1 < source[i].size() && 
                     source[i][j]=='*' && source[i][j+1]=='/') {
                comment = false; j++;
            }
            else if (!comment)
                s.push_back(source[i][j]);
        }
        if (!comment && s.size()) {
            ans.push_back(s); s.clear();
        }
    }
    return ans;
}
  1. দেয়া নাম্বার থেকে রিপিটেড ডিজিট বাদ দেওয়া C++-এ

  2. অ্যারে থেকে লিডিং জিরো বাদ দেওয়া C++-এ

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

  4. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা