Initialisation un peu spéciale d'une chaine à la déclaration [C] - C - Programmation
Marsh Posté le 21-08-2003 à 14:11:30
Ben avec \<valeur>
PS : char modele1[5]="salut", et de mettre un \0 à la fin.
Le \0 est mis automatiquement dans "salut".
Marsh Posté le 21-08-2003 à 14:13:24
char modele1[5]="salut"
il est ou le \0 là ?
ben sinon
tu utilise les notations hexas ou octales
\x00 \x01
\000 \001
Marsh Posté le 21-08-2003 à 14:19:35
Mon exemple était pas très clair
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
Marsh Posté le 21-08-2003 à 14:22:39
freds45 a écrit : Mon exemple était pas très clair |
...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...
Marsh Posté le 21-08-2003 à 14:25:52
Bon, j'ai trouvé une solution
http://www.eng.iastate.edu/efmd/ciochar.html#initial
Citation : |
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
Marsh Posté le 21-08-2003 à 14:26:07
sinon, je suis naz
yes "les char sont des int"
Code :
|
(0xdeadbeef pour les bilgeux)
Marsh Posté le 21-08-2003 à 14:37:12
Taz a écrit : sinon, je suis naz
|
Comment il se la pete
Marsh Posté le 21-08-2003 à 14:44:01
ReplyMarsh Posté le 21-08-2003 à 14:44:44
ReplyMarsh Posté le 21-08-2003 à 14:47:35
Citation : char modele1[5]="salut" |
Code :
|
Citation : test.cpp (12): error C2117: 'modele1' : dépassement des limites du tableau |
Marsh Posté le 21-08-2003 à 14:48:14
ReplyMarsh Posté le 21-08-2003 à 15:25:44
ReplyMarsh Posté le 21-08-2003 à 15:28:32
ReplyMarsh Posté le 21-08-2003 à 15:37:54
ReplyMarsh Posté le 21-08-2003 à 15:39:01
El_gringo a écrit : |
ma sémantique est aussi très limitée, ce qui m'empeche de comprendre tout sorte d'humour
Marsh Posté le 23-08-2003 à 21:39:54
Taz a écrit : char modele1[5]="salut" |
il est dans la syntaxe "..",
"bonjour" = {'b','o','n','j','o','u','r','\0'}
et les \<valeur> sache que ça marche très bien, c'est en octal.
"\001\000\002" c'est une chaîne valide.
Marsh Posté le 23-08-2003 à 21:46:50
jesus_christ a écrit : |
il est ptet dans la syntaxe "", mais pas dans ta chaine a l'arrivée...
char modele1[5]="salut";
error C2117: 'modele1' : array bounds overflow
un 5 a la place du 6 et la c'est bon.
Marsh Posté le 23-08-2003 à 21:47:15
jesus_christ a écrit : |
Toi t'as rien compris à sa remarque, va t'coucher
Marsh Posté le 23-08-2003 à 21:47:59
ReplyMarsh Posté le 23-08-2003 à 21:50:08
ReplyMarsh Posté le 23-08-2003 à 22:03:36
Konar a écrit : |
j'ai une autre possibilité à l'esprit
Marsh Posté le 23-08-2003 à 22:21:23
*Syl* a écrit : Toi t'as rien compris à sa remarque, va t'coucher |
arf merde je croyais répondre à freds45, désolai
Marsh Posté le 23-08-2003 à 22:44:52
ReplyMarsh Posté le 24-08-2003 à 17:59:31
Reply
Marsh 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
---------------
Filmstory : gardez trace des films que vous avez vu ! :D