Longue chaine de charactere dans une variable [Résolu]

Signaler
Messages postés
24
Date d'inscription
dimanche 17 juin 2001
Statut
Membre
Dernière intervention
3 octobre 2006
-
Messages postés
31
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2009
-
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

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
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");
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
char nom[255]={0};



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


eRoZion
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
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
Messages postés
24
Date d'inscription
dimanche 17 juin 2001
Statut
Membre
Dernière intervention
3 octobre 2006

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
Messages postés
146
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
8 mars 2008
1
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 !



@++
Messages postés
31
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2009

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".
Messages postés
31
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2009

Désolé pour mon erreur , je réfléchirais a deux fois la prochaine fois :)