Dans le langage de programmation C, les tableaux sont définis comme suit:
int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6
La taille du tableau est déduite des éléments d'initialisation, qui dans ce cas sont 6. Vous pouvez également écrire un tableau C de cette façon, en le dimensionnant explicitement, puis en définissant chaque élément dans l'ordre:
int foo[6]; //Give the array an explicit size of 6
foo[0] = 4;
foo[1] = 8;
foo[2] = 15;
foo[3] = 16;
foo[4] = 23;
foo[5] = 42;
Le défi
Vous devez écrire un programme ou une fonction qui étend les tableaux de la première à la seconde. Puisque vous écrivez un programme pour rendre le code plus long et que vous aimez l'ironie, vous devez rendre votre code le plus court possible.
L'entrée sera une chaîne représentant le tableau d'origine et la sortie sera la définition de tableau développée. Vous pouvez sans risque supposer que l'entrée ressemblera toujours à ceci:
<type> <array_name>[] = {<int>, <int>, <int> ... };
"Type" et "array_name" seront entièrement composés de caractères alphabétiques et de soulignés _
. Les éléments de la liste seront toujours un nombre compris entre -2 147 483 648 et 2 147 483 647. Les entrées dans un autre format ne doivent pas être gérées.
Les espaces de votre sortie doivent correspondre exactement à ceux de la sortie de test, même si une nouvelle ligne est autorisée.
Test IO:
#in
short array[] = {4, 3, 2, 1};
#out
short array[4];
array[0] = 4;
array[1] = 3;
array[2] = 2;
array[3] = 1;
#in
spam EGGS[] = {42};
#out
spam EGGS[1];
EGGS[0] = 42;
#in
terrible_long_type_name awful_array_name[] = {7, -8, 1337, 0, 13};
#out
terrible_long_type_name awful_array_name[5];
awful_array_name[0] = 7;
awful_array_name[1] = -8;
awful_array_name[2] = 1337;
awful_array_name[3] = 0;
awful_array_name[4] = 13;
Les soumissions dans toutes les langues sont encouragées, mais des points bonus si vous pouvez le faire en C.
Classement:
Voici un tableau montrant les principales réponses:
foo[0]=1;
acceptable?