Objetivo
Usando a linguagem de programação de sua escolha, escreva o programa mais curto para eliminar comentários de uma sequência que representa um programa em C.
Entrada
A string pode ser usada como qualquer forma de entrada, mas também pode ser usada como uma variável.
Instruções
Dois tipos diferentes de comentários devem ser removidos:
- comentários multilinhas , começando
/*
e terminando com*/
- comentários de linha única , começando
//
e terminando com quebras de linha no estilo Linux (LF,\n
)
Os comentários nas cadeias não devem ser excluídos. Para o objetivo desse desafio, você só precisa considerar "
cadeias delimitadas. Em particular, você pode ignorar a possibilidade de '
literais de caracteres delimitados. Você também pode ignorar trigramas e continuações de linha ( /\<LF>*...
).
Exemplos
Entrada:
#include <stdio.h>
int main(int argc, char** argv)
{
// this comment will be removed
if (argc > 1) {
printf("Too many arguments.\n"); // this too will be removed
return 1;
}
printf("Please vist http://this.will.not.be.removed.com\n");
printf("/* This will stay */\n");
printf("\"/* This will stay too */\"\n");
printf("//and so will this\\");
// but not this
printf("just \"ano//ther\" test.");
return 0;
}
Resultado:
#include <stdio.h>
int main(int argc, char** argv)
{
if (argc > 1) {
printf("Too many arguments.\n");
return 1;
}
printf("Please vist http://this.will.not.be.removed.com\n");
printf("/* This will stay */\n");
printf("\"/* This will stay too */\"\n");
printf("//and so will this\\");
printf("just \"ano//ther\" test.");
return 0;
}
Entrada:
/*
this shall disappear
*/
#include <string>
int main(int argc, char** argv)
{
string foo = ""/*remove that!**/;
// Remove /* this
int butNotThis = 42;
// But do */ remove this
int bar = 4 /*remove this*/* 3; // but don't remove that 3. */
return 0;//just a comment
}/*end of the file has been reached.*/
Resultado:
#include <string>
int main(int argc, char** argv)
{
string foo = "";
int butNotThis = 42;
int bar = 4 * 3;
return 0;
}
// this comment will be removed
quais desapareceram. Alguma regra para isso?
printf("\"/* This will stay too */\"\n");
apareceu no deve se tornar código?