Vous pouvez assigner une chaîne littérale (par exemple: "horse"
) à un tableau char
uniquement lorsque vous le déclarez, et non après.
char array[4] = "str"; // is OK
char array2[4];
array2 = "str"; // is NOT OK.
Vous pouvez faire comme ceci:
char result[3][4] = { "horse", "pig", "chicken" };
mais avertissement: "horse"
et "chicken"
sont plus longs que char[4]
.
Si vous souhaitez attribuer une chaîne littérale à un tableau char
déjà déclaré que vous devrez utiliser strcpy
(ou d'autres fonctions similaires).
L'autre solution, suggérée par beaucoup est de déclarer result
comme un tableau de pointeurs char: char *result[3];
, mais si vous aimez cela, vous ne sera pas autorisé à modifier le contenu des chaînes pointées par result[i]
.
Eh bien ce sont des caractères char * et non char [4] ... – leppie
@birryree: Cette question a son propre duplicata possible http://stackoverflow.com/questions/579734/assigning-strings-to-arrays-of- caractères –