Tableau de string en c

Fermé
Le noob - 28 oct. 2010 à 17:38
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 - 29 oct. 2010 à 08:23
Bonjour,
je souhaiterai créer un tableau de chaînes de caractères et ensuite travailler dessus en demandant aux utilisateurs de le remplir.
en fait ça serait quelque chose comme:
void entreNom(char *nom){
		printf("entrez le nom \n");
		scanf("%s",nom);
}
int main (int argc, const char * argv[]) {
char nom[3][20] ;
int i=0;
for(i=0;i<3;i++){
entreNom(nom[i][20]);
}
    return 0;
}

du coup nom contiendrait tous les noms des joueurs
mais évidemment ce que j'ai mis ne marche pas -_-'

A voir également:

1 réponse

ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
28 oct. 2010 à 18:44
bonjour,

dans la fonction, mets un getchar() aprés le scanf pour être sur de vider le buffer clavier.
pour l'appel de la fonction, tu doit passer un pointeur sur un char (donc un char *) et ce que tu passes est un char .
nom[i] est un pointeur sur la chaine de caractére allant de nom[i][0] à nom[i][19].
donc tu doit appeler ta fonction comme çà: entreNom(nom[i]).

pense à limiter le nombre de caractére du scanf à 20 en écrivant
scanf("%20s",nom);

cdlt
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
28 oct. 2010 à 21:11
D'accord avec toi, sauf pour le scanf.
Il faut mettre : scanf("%19s", nom) puisque la taille est de 20.
Cdlt,
0
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
28 oct. 2010 à 22:25
?
pourquoi?
20 assure un non débordement
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
28 oct. 2010 à 22:49
20 assure un débordement d'au maximum 1 byte et le '\0' pour être précis.
Dans scanf, il faut mettre la taille maximale de la chaîne et laisser la place pour le caractère terminal.
0
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
29 oct. 2010 à 08:23
exact!
autant pour moi
0