Longue chaine de charactere dans une variable

Résolu
cs_mast Messages postés 24 Date d'inscription dimanche 17 juin 2001 Statut Membre Dernière intervention 3 octobre 2006 - 27 oct. 2005 à 04:17
Rhazou Messages postés 31 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 21 juillet 2009 - 27 oct. 2005 à 20:02
Bonsoir !



J'essais d'enregistrer une chaine de charactere dans une variable:



char nom = "Alex";



mais le compilateur (XCode sur OS X) me donne une erreur que la chaine
est trop longue pour le type alors j'efface charactere par charactere..
toujours l'erreur jusqu'a temps que j'ai une seule lettre dans ma
variable. Je voudrais savoir comment y stocker une chaine plus longue.
J'ai esseillé "long char" mais ca ne fonctionne pas..



Merci !

- Alex

7 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
27 oct. 2005 à 14:30
char nom[2][255];
nom[1][255] ="Alex\0";
nom[2][255] ="Bob\0";

=> faux
1), le premier indice va de 0 à 1;
2), l'affectation de chaîne ne peut se faire qu'à la déclaration , après il faut faire strcpy :

char nom[2][255] = {"Alex", "Bob"};
ou
char nom[2][255];
strcpy(nom[0], "Alex");
strcpy(nom[1], "Bob");
3
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
27 oct. 2005 à 05:38
char nom[255]={0};



Un tableau de 255 éléments de type char, tous initialisés à 0;


eRoZion
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
27 oct. 2005 à 05:42
Oui au fait,

char nom[255]="Alex\0";



Mais ça marche pas avec tous les compilos, sur certains il faudra faire :

char nom[255]={'A','l','e','x',0};



eRoZion
0
cs_mast Messages postés 24 Date d'inscription dimanche 17 juin 2001 Statut Membre Dernière intervention 3 octobre 2006
27 oct. 2005 à 07:13
Ce n'est pas vraiment ce que je veux faire. Je dois faire un "guessing
game" pour un cours et je veux enregistrer le nom des deux joueurs dans
une variable pour les utiliser plus tard. Un tableau pourrait marcher,
1 joueur dans chaque "case" .. mais je pensais plus a une variable pour
chacun...



merci pour la réponse !

- Alex
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
27 oct. 2005 à 08:45
tu n'as pas compris ce qu'est un char,

ce n'est pas une variable de type string,

c'est une variable qui stock le code ascii correspondant au caractère.

donc dans un char tu ne pourras y enregistrer qu'un seul caractère.



ce qu'a dit erozion est le mieux que tu puisse faire, puisque en appelant nom, ca te retournera le mot complet.

revois les bases sur les variables en c, tu t'en sortiras que mieux !



@++
0
Rhazou Messages postés 31 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 21 juillet 2009
27 oct. 2005 à 10:19
essay avec un tableau de char ptetre :
char nom[2][255];
nom[1][255] ="Alex\0";
nom[2][255] ="Bob\0";

ps : pour atribuer dynamiquement la place de ta char tu peut passer par des pointeurs, char* nom = "chaine de charatere", nom[2] sera egal à "a".
0
Rhazou Messages postés 31 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 21 juillet 2009
27 oct. 2005 à 20:02
Désolé pour mon erreur , je réfléchirais a deux fois la prochaine fois :)
0
Rejoignez-nous