Rekan kerja saya, Jimmy agak baru di C / C ++. Dia juga tipe pembelajar yang lambat. Sekarang, agar adil, kodenya selalu dikompilasi, tetapi ia memiliki beberapa kebiasaan yang sangat ceroboh. Misalnya, semua orang tahu bahwa Anda dapat mendefinisikan array seperti ini:
int spam[] = {4, 8, 15, 16, 23, 42};
Semua orang, kecuali Jimmy. Dia yakin bahwa satu - satunya cara untuk membuat array adalah seperti ini:
int spam[6];
spam[0] = 4;
spam[1] = 8;
spam[2] = 15;
spam[3] = 16;
spam[4] = 23;
spam[5] = 42;
Saya terus memperbaiki ini untuknya dalam review kode, tetapi dia tidak akan belajar. Jadi saya ingin Anda menulis alat yang secara otomatis melakukan ini untuknya ketika ia melakukan¹.
Tantangan
Saya ingin Anda menulis program lengkap atau fungsi yang menggunakan string multiline sebagai input, dan menampilkan versi yang lebih ringkas dari array C. Masukan akan selalu mengikuti format ini, termasuk spasi:
identifier_one identifier_two[some_length];
identifier_two[0] = some_number;
identifier_two[1] = some_number;
identifier_two[2] = some_number;
...
identifier_two[some_length - 1] = some_number;
Singkatnya, input akan selalu valid dan didefinisikan dengan baik C. Secara lebih rinci:
Semua pengidentifikasi akan terdiri dari hanya huruf dan garis bawah. Panjangnya akan selalu setidaknya satu, dan tidak akan pernah ada indeks yang hilang atau keluar dari batas. Anda juga dapat mengasumsikan bahwa indeks sudah beres. Sebagai contoh:
foo bar[3];
bar[0] = 1
bar[2] = 9;
foo bar[1];
bar[0] = 1;
bar[1] = 3;
dan
foo bar[3];
bar[2] = 9;
bar[0] = 1
bar[1] = 3
semua input tidak valid, dan dapat menyebabkan perilaku yang tidak ditentukan dalam kiriman Anda. Anda juga dapat mengasumsikan bahwa semua angka akan menjadi angka desimal yang valid, negatif atau positif. Input tidak akan memiliki ruang asing. Output harus selalu mengikuti format ini, termasuk spasi:
identifier_one identifier_two[] = {n1, n2, n3, ...};
Berikut ini beberapa contoh data:
Input:
spam eggs[10];
eggs[0] = 0;
eggs[1] = 4;
eggs[2] = 8;
eggs[3] = -3;
eggs[4] = 3;
eggs[5] = 7;
eggs[6] = 888;
eggs[7] = 555;
eggs[8] = 0;
eggs[9] = -2;
Output:
spam eggs[] = {0, 4, 8, -3, 3, 7, 888, 555, 0, -2};
Input:
char ans[2];
ans[0] = 52;
ans[1] = 50;
Output:
char ans[] = {52, 50};
Input:
blah_blah quux[1];
quux[0] = 105;
Output:
blah_blah quux[] = {105};
Anda dapat mengambil input dan output Anda dalam format apa pun yang masuk akal, seperti STDIN / STDOUT, argumen fungsi dan nilai pengembalian, membaca dan menulis file dll. Lubang standar berlaku. Jawaban terpendek dalam byte menang!
¹Ini pasif-agresif dan ide yang mengerikan. Anda tidak mendapatkan ide ini dari saya.