Objetivo
Reemplace todos los comentarios en C, C ++ o Java Code con el comentario // Do the needful
.
Detalles específicos
Este desafío de codificación es simple. Tomar como entrada el nombre de un archivo. El archivo de entrada deberá contener código C, C ++ o Java. El código deberá contener uno o más comentarios. Los comentarios pueden ser de una sola línea /* */
o //
delimitados, así como /* */
delimitados por varias líneas . La salida del programa debe ser idéntica a la entrada, excepto que todos los comentarios deben convertirse // Do the needful
.
Por ejemplo, si el archivo de entrada es:
#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);
}
La salida del programa debería leer
#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);
}
Puntuación
Este es un concurso de popularidad. Usted consigue dos votos extra añadido a su puntuación si ninguna de las siguientes palabras aparece en su programa en caso de cualquier variación: {"do", "the", "needful"}
. El puntaje es el número de votos más el bono si corresponde.
Subsidios
Si los comentarios aparecen en literales de cadena, es aceptable convertirlos // Do the needful
también. Después de todo ... nunca puedes tener lo suficiente necesario.
/* ... */
precede a un no comentario en una línea?
char str[]="/**///";
o /*
aparece una secuencia de inicio de comentario en un /*
comentario, o aparece una barra diagonal inversa-nueva línea en un //
comentario, o un //
comentario dentro de un /**/
comentario?
"d" + "o"
,"t" + "he"
y"need" + "ful"
? Además, ¿el envío tiene que ser capaz de manejar algún código C, C ++ o Java válido? Eso es bastante duro y equivale a escribir un lexer para los tres idiomas (estoy pensando en comentarios literales en cadenas y viceversa). Si es así, ¿qué pasa con las bibliotecas de lexer de terceros?