Objectif
En utilisant le langage de programmation de votre choix, écrivez le programme le plus court pour éliminer les commentaires d'une chaîne représentant un programme C.
Contribution
La chaîne peut être considérée comme n'importe quelle forme d'entrée, mais elle peut également être considérée comme une variable.
Instructions
Deux types de commentaires différents doivent être supprimés:
- commentaires multilignes , commençant par
/*
et se terminant par*/
- commentaires sur une seule ligne , commençant
//
et se terminant par des sauts de ligne de style Linux (LF,\n
)
Les commentaires dans les chaînes ne doivent pas être supprimés. Aux fins de ce défi, il vous suffit de considérer les "
chaînes délimitées. En particulier, vous pouvez ignorer la possibilité de '
littéraux de caractères délimités. Vous pouvez également ignorer les trigraphes et les continuations de ligne ( /\<LF>*...
).
Exemples
Contribution:
#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;
}
Production:
#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;
}
Contribution:
/*
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.*/
Production:
#include <string>
int main(int argc, char** argv)
{
string foo = "";
int butNotThis = 42;
int bar = 4 * 3;
return 0;
}
// this comment will be removed
lesquels viennent de disparaître. Une règle pour ça?
printf("\"/* This will stay too */\"\n");
est apparu dans le code devrait devenir ?