Рубрики

Удалить комментарии из данной программы C / C ++

Имея программу на C / C ++, удалите из нее комментарии.

Мы настоятельно рекомендуем свернуть ваш браузер и попробовать это в первую очередь.

Идея состоит в том, чтобы поддерживать две флаговые переменные, одна для обозначения запуска однострочного комментария, другая для указания того, что многострочный комментарий запущен. Когда флаг установлен, мы ищем конец комментария и игнорируем все символы между началом и концом.

Ниже приводится реализация вышеуказанной идеи на C ++.

// C ++ программа для удаления комментариев из C / C ++ программы
#include <iostream>

using namespace std;

  
string removeComments(string prgm)
{

    int n = prgm.length();

    string res;

  

    // Флаги для обозначения однострочных и многострочных комментариев

    // начали или нет.

    bool s_cmt = false;

    bool m_cmt = false;

  

  

    // Обход данной программы

    for (int i=0; i<n; i++)

    {

        // Если флаг однострочного комментария включен, то проверять его конец

        if (s_cmt == true && prgm[i] == '\n')

            s_cmt = false;

  

        // Если включен многострочный комментарий, то проверяем его конец

        else if  (m_cmt == true && prgm[i] == '*' && prgm[i+1] == '/')

            m_cmt = false,  i++;

  

        // Если этот символ есть в комментарии, игнорировать его

        else if (s_cmt || m_cmt)

            continue;

  

        // Проверяем начало комментариев и устанавливаем флажки подходящего

        else if (prgm[i] == '/' && prgm[i+1] == '/')

            s_cmt = true, i++;

        else if (prgm[i] == '/' && prgm[i+1] == '*')

            m_cmt = true,  i++;

  

        // Если текущий символ не является комментарием, добавьте его к res

        else  res += prgm[i];

    }

    return res;

}

  
// Программа драйвера для проверки вышеуказанных функций

int main()

{

    string prgm = "   /* Test program */ \n"

                  "   int main()  \n"

                  "   {           \n"

                  "      // variable declaration \n"

                  "      int a, b, c;    \n"

                  "      /* This is a test  \n"

                  "          multiline     \n"

                  "          comment for   \n"

                  "          testing */      \n"

                  "      a = b + c;       \n"

                  "   }           \n";

    cout << "Given Program \n";

    cout << prgm << endl;

    cout << " Modified Program ";

    cout << removeComments(prgm);

    return 0;

}

Выход

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

 Modified Program
   int main()
   {
             int a, b, c;

          a = b + c;
   }

Эта статья предоставлена Сачин Гупта. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Удалить комментарии из данной программы C / C ++

0.00 (0%) 0 votes