Tor
Schreiben Sie in der Programmiersprache Ihrer Wahl das kürzeste Programm , um Kommentare aus einer Zeichenfolge zu entfernen, die ein C-Programm darstellt.
Eingang
Die Zeichenfolge kann als eine beliebige Form der Eingabe verwendet werden, sie kann jedoch auch als Variable verwendet werden.
Anleitung
Zwei verschiedene Arten von Kommentaren sind zu entfernen:
- Mehrzeilige Kommentare , beginnend mit
/*
und endend mit*/
- Einzeilige Kommentare , beginnend mit
//
und endend mit Zeilenumbrüchen im Linux-Stil (LF,\n
)
Kommentare in Strings dürfen nicht gelöscht werden. Für diese Herausforderung müssen Sie nur "
-begrenzte Zeichenfolgen berücksichtigen . Insbesondere können Sie die Möglichkeit von '
Literalen mit -begrenzten Zeichen ignorieren . Sie können auch Trigraphen und Linienfortsetzungen ignorieren ( /\<LF>*...
).
Beispiele
Eingang:
#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;
}
Ausgabe:
#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;
}
Eingang:
/*
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.*/
Ausgabe:
#include <string>
int main(int argc, char** argv)
{
string foo = "";
int butNotThis = 42;
int bar = 4 * 3;
return 0;
}
// this comment will be removed
denen gerade verschwunden ist. Irgendeine Regel dafür?
printf("\"/* This will stay too */\"\n");
erschien in der werden soll Code?