[C] Initialisation un peu spéciale d'une chaine à la déclaration
freds45
Posté le 21-08-2003 à 14:10:04
all
Voilà, dans une fonction, j'ai une déclaration de chaine de longueur fixe:
char modele1[5];
Ce que je voudrais, c'est affecter une valeur à cette chaine. Il suffirait de faire qquechose comme
char modele1[5]="salut", et de mettre un \0 à la fin.
Maintenant, le souci c'est que je dois initialiser la chaîne avec des valeurs qui ont un code ascii 0 et 1 (pas '0' ni '1')...
Comment j'peux faire? Ya toujours la solution d'initialiser les chars un par un, mais c'est pas terrible
Dans la chaîne, il faut que la valeur ascii de mes chars soit 0 ou 1...
Il faut qu'elles ressemblent à 00110 et 00011, et pas '0''0''1''1''0', donc valeur ascii 0 ou 1 et pas 48 ou 49...
Pas possible donc d'initialiser ça avec
char modele1[5]="00110" ou char modele1[5]=00110
Dans la chaîne, il faut que la valeur ascii de mes chars soit 0 ou 1...
Il faut qu'elles ressemblent à 00110 et 00011, et pas '0''0''1''1''0', donc valeur ascii 0 ou 1 et pas 48 ou 49...
Pas possible donc d'initialiser ça avec
char modele1[5]="00110" ou char modele1[5]=00110
...et c'est pour ça que Taz te dis d'initialiser avec
"\000\001" pour avoir une chaine contenant les codes ASCII 0 et 1.
Enfin, je pense...
String Initialization
Strings can be initialized with either a brace enclosed character list, or a string constant. e.g. char str[4] = {'U', 'S', 'A', '\O';}
Dans mon code, j'ai remplacé ça par:
char modele1[5] = {0, 0, 1, 1, 0};
et c'est bon ça roule
J'ai pas trop compris l'exemple de Taz avec les \001 et \000 par contre