Tableau de string en c
Le noob
-
ydurce Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
ydurce Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
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:
du coup nom contiendrait tous les noms des joueurs
mais évidemment ce que j'ai mis ne marche pas -_-'
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:
- Tableau de string en c
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
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
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
Il faut mettre : scanf("%19s", nom) puisque la taille est de 20.
Cdlt,
pourquoi?
20 assure un non débordement
Dans scanf, il faut mettre la taille maximale de la chaîne et laisser la place pour le caractère terminal.
autant pour moi