Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1439 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Initialisation un peu spéciale d'une chaine à la déclaration

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Initialisation un peu spéciale d'une chaine à la déclaration

n°493303
freds45
Posté le 21-08-2003 à 14:10:04  profilanswer
 

:hello: 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? :p 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
mood
Publicité
Posté le 21-08-2003 à 14:10:04  profilanswer
 

n°493307
HelloWorld
Salut tout le monde!
Posté le 21-08-2003 à 14:11:30  profilanswer
 

Ben avec \<valeur>
 
PS : char modele1[5]="salut", et de mettre un \0 à la fin.
Le \0 est mis automatiquement dans "salut".


Message édité par HelloWorld le 21-08-2003 à 14:12:33

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°493314
Taz
bisounours-codeur
Posté le 21-08-2003 à 14:13:24  profilanswer
 

char modele1[5]="salut"
 
 
il est ou le \0 là ?
 
 
ben sinon
 
tu utilise les notations hexas ou octales
 
\x00 \x01
\000 \001

n°493334
freds45
Posté le 21-08-2003 à 14:19:35  profilanswer
 

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 :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°493347
El_gringo
Posté le 21-08-2003 à 14:22:39  profilanswer
 

freds45 a écrit :

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 :/


 
...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...

n°493354
freds45
Posté le 21-08-2003 à 14:25:52  profilanswer
 

Bon, j'ai trouvé une solution :p
 
http://www.eng.iastate.edu/efmd/ciochar.html#initial

Citation :


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 :jap: ça roule
J'ai pas trop compris l'exemple de Taz avec les \001 et \000 par contre :??:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°493356
Taz
bisounours-codeur
Posté le 21-08-2003 à 14:26:07  profilanswer
 

sinon, je suis naz
 
yes "les char sont des int"
 

Code :
  1. char c[]={
  2. 1, 1, 0, 1, 1, 1, 1, 0,
  3. 1, 0, 1, 0, 1, 1, 0, 0,
  4. 1, 0, 1, 1, 1, 1, 1, 0,
  5. 1, 1, 1, 0, 1, 1, 1, 1
  6. };


 
(0xdeadbeef pour les bilgeux)

n°493401
Tetedeienc​h
Head Of God
Posté le 21-08-2003 à 14:37:12  profilanswer
 

Taz a écrit :

sinon, je suis naz
 
yes "les char sont des int"
 

Code :
  1. char c[]={
  2. 1, 1, 0, 1, 1, 1, 1, 0,
  3. 1, 0, 1, 0, 1, 1, 0, 0,
  4. 1, 0, 1, 1, 1, 1, 1, 0,
  5. 1, 1, 1, 0, 1, 1, 1, 1
  6. };


 
(0xdeadbeef pour les bilgeux)


 
Comment il se la pete :p

n°493432
HelloWorld
Salut tout le monde!
Posté le 21-08-2003 à 14:44:01  profilanswer
 

Citation :

sinon, je suis naz


 
Taz ou naz ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°493434
El_gringo
Posté le 21-08-2003 à 14:44:44  profilanswer
 

HelloWorld a écrit :

Citation :

sinon, je suis naz


 
Taz ou naz ...


 
naz !:D

mood
Publicité
Posté le 21-08-2003 à 14:44:44  profilanswer
 

n°493443
HelloWorld
Salut tout le monde!
Posté le 21-08-2003 à 14:47:35  profilanswer
 

Citation :

char modele1[5]="salut"
 
il est ou le \0 là ?
 


 

Code :
  1. char modele1[5]="salut";


 

Citation :

test.cpp (12): error C2117: 'modele1' : dépassement des limites du tableau


Message édité par HelloWorld le 21-08-2003 à 14:48:28

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°493444
Taz
bisounours-codeur
Posté le 21-08-2003 à 14:48:14  profilanswer
 

il est 14h48 et je suis encore modo  :whistle:

n°493504
El_gringo
Posté le 21-08-2003 à 15:25:44  profilanswer
 

Taz a écrit :

il est 14h48 et je suis encore modo  :whistle:  


 
Parce que t'es juste un modo intérimaire ?

n°493508
Taz
bisounours-codeur
Posté le 21-08-2003 à 15:28:32  profilanswer
 

El_gringo a écrit :


 
Parce que t'es juste un modo intérimaire ?

je suis un bot

n°493516
El_gringo
Posté le 21-08-2003 à 15:37:54  profilanswer
 

Taz a écrit :

je suis un bot


 
J'sais pas que t'as programmé, mais il se sont pas foulés puor l'IA ! :D

n°493517
Taz
bisounours-codeur
Posté le 21-08-2003 à 15:39:01  profilanswer
 

El_gringo a écrit :


 
J'sais pas que t'as programmé, mais il se sont pas foulés puor l'IA ! :D

ma sémantique est aussi très limitée, ce qui m'empeche de comprendre tout sorte d'humour

n°493547
Tetedeienc​h
Head Of God
Posté le 21-08-2003 à 15:59:39  profilanswer
 

Dommage qu'il fasse pas d'erreurs de parsing :'(

n°495558
jesus_chri​st
votre nouveau dieu
Posté le 23-08-2003 à 21:39:54  profilanswer
 

Taz a écrit :

char modele1[5]="salut"
 
 
il est ou le \0 là ?


 
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.


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°495566
Konar
Posté le 23-08-2003 à 21:46:50  profilanswer
 

jesus_christ a écrit :


 
il est dans la syntaxe "..",  


 
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.

n°495567
*syl*
--&gt; []
Posté le 23-08-2003 à 21:47:15  profilanswer
 

jesus_christ a écrit :


 
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.

Toi t'as rien compris à sa remarque, va t'coucher :p

n°495569
*syl*
--&gt; []
Posté le 23-08-2003 à 21:47:59  profilanswer
 

Konar a écrit :

un 5 a la place du 6 et la c'est bon.

T'as inversé je crois :D

n°495571
Konar
Posté le 23-08-2003 à 21:50:08  profilanswer
 

*Syl* a écrit :

T'as inversé je crois :D


 
moui c'est possible.
on va dire que c'est la chaleur.

n°495582
Taz
bisounours-codeur
Posté le 23-08-2003 à 22:03:36  profilanswer
 

Konar a écrit :


 
moui c'est possible.
on va dire que c'est la chaleur.

j'ai une autre possibilité à l'esprit  :D

n°495586
jesus_chri​st
votre nouveau dieu
Posté le 23-08-2003 à 22:21:23  profilanswer
 

*Syl* a écrit :

Toi t'as rien compris à sa remarque, va t'coucher :p

arf merde je croyais répondre à freds45, désolai
 
 [:dehors2]  


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°495591
Konar
Posté le 23-08-2003 à 22:44:52  profilanswer
 

Taz a écrit :

j'ai une autre possibilité à l'esprit  :D  


 
euh... koi ca ?
je redoute le pire...

n°495859
freds45
Posté le 24-08-2003 à 17:59:31  profilanswer
 

jesus_christ a écrit :

arf merde je croyais répondre à freds45, désolai
 
 [:dehors2]  
 


 
 :heink:  :o

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Initialisation un peu spéciale d'une chaine à la déclaration

 

Sujets relatifs
Declaration de From2 comme objet de Form1Déclarer une variable globale à partir d'une chaine de caractère ?
[MySQL] Compter les occurences d'une chaine ?[Perl]Valider le format d'une chaine de caractères
[C] Ajout d'un char en fin de chaine en boucleconnaitre la largeur d'une chaine en java (ou plutôt jsp)
connaitre la largeur d'une chaine en javascriptInitialisation d'un objet de type TOracleDataSet (Delphi - DOA)
ASP : Concaténation de chaine, ca me GRRRRRRR[PHP] Transformer une chaine contenant de l'hexa en hexa...
Plus de sujets relatifs à : [C] Initialisation un peu spéciale d'une chaine à la déclaration


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR