Tor
Ersetzen Sie alle Kommentare in C, C ++ oder Java Code durch den Kommentar // Do the needful
.
Besonderheiten
Diese Codierungsherausforderung ist einfach. Nehmen Sie als Eingabe den Namen einer Datei. Die Eingabedatei muss C-, C ++ - oder Java-Code enthalten. Der Code muss einen oder mehrere Kommentare enthalten. Die Kommentare können einzeilig /* */
oder //
begrenzt sowie mehrzeilig /* */
begrenzt sein. Die Ausgabe des Programms sollte mit der Eingabe identisch sein, außer dass alle Kommentare in konvertiert werden sollten // Do the needful
.
Zum Beispiel, wenn die Eingabedatei lautet:
#include <iostream.h>
int result; // the result of the calculations
char oper_char; // the user-specified operator
int value; // value specified after the operator
/* standard main function */
int main()
{
result = 0; // initialize the result
// Loop forever (or till we hit the break statement)
while (1) {
cout << "Result: " << result << '\n';
/* This code outputs display and requests
input from the user */
cout << "Enter operator and number: ";
cin >> oper_char;
cin >> value;
if (oper_char = '+') {
result += value;
} else {
cout << "Unknown operator " << oper_char << '\n';
}
}
return (0);
}
Die Ausgabe des Programms sollte lauten
#include <iostream.h>
int result; // Do the needful
char oper_char; // Do the needful
int value; // Do the needful
// Do the needful
int main()
{
result = 0; // Do the needful
// Do the needful
while (1) {
cout << "Result: " << result << '\n';
// Do the needful
cout << "Enter operator and number: ";
cin >> oper_char;
cin >> value;
if (oper_char = '+') {
result += value;
} else {
cout << "Unknown operator " << oper_char << '\n';
}
}
return (0);
}
Wertung
Dies ist ein Beliebtheitswettbewerb. Sie erhalten zwei zusätzliche Stimmen zu Ihrer Punktzahl hinzugefügt, wenn in keinem Fall eines der folgenden Wörter in Ihrem Programm erscheint : {"do", "the", "needful"}
. Die Punktzahl ist die Anzahl der Stimmen plus ggf. der Bonus.
Zulagen
Wenn Kommentare in Zeichenfolgenliteralen angezeigt werden, können sie auch in konvertiert werden // Do the needful
. Immerhin ... kann man nie genug Bedürftiges haben.
/* ... */
vor einem Nichtkommentar in einer Zeile steht?
char str[]="/**///";
eine Kommentar-Startsequenz /*
in einem /*
Kommentar oder eine Backslash-Newline in einem //
Kommentar oder ein //
Kommentar in einem /**/
Kommentar angezeigt wird ?
"d" + "o"
kann ? Außerdem hat die Vorlage der Lage sein , zu behandeln jeden gültigen C, C ++ oder Java - Code? Das ist ziemlich hart und läuft darauf hinaus, einen Lexer für alle drei Sprachen zu schreiben (ich denke über Kommentarliterale in Strings nach und umgekehrt). Wenn ja, was ist mit Lexerbibliotheken von Drittanbietern?"t" + "he"
"need" + "ful"