Tujuan
Dengan menggunakan bahasa pemrograman pilihan Anda, tulislah program terpendek untuk menghilangkan komentar dari string yang mewakili program C.
Memasukkan
String dapat diambil sebagai bentuk input apa pun, tetapi juga dapat dianggap sebagai variabel.
Instruksi
Dua jenis komentar harus dihapus:
- komentar multiline , dimulai dengan
/*
dan diakhiri dengan*/
- komentar satu baris , dimulai dengan
//
dan diakhiri dengan jeda baris bergaya Linux (LF,\n
)
Komentar dalam string tidak harus dihapus. Untuk tujuan tantangan ini, Anda hanya perlu mempertimbangkan "
string -ditedit. Secara khusus, Anda dapat mengabaikan kemungkinan '
karakter literal -delimited. Anda juga dapat mengabaikan trigraph dan garis lanjutan ( /\<LF>*...
).
Contohnya
Memasukkan:
#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;
}
Keluaran:
#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;
}
Memasukkan:
/*
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.*/
Keluaran:
#include <string>
int main(int argc, char** argv)
{
string foo = "";
int butNotThis = 42;
int bar = 4 * 3;
return 0;
}
// this comment will be removed
yang hilang begitu saja. Adakah aturan untuk itu?
printf("\"/* This will stay too */\"\n");
muncul di harus menjadi kode?