Affichage chaines de caractères en c
eya
-
MissRobet Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
MissRobet Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
bonjour,
je suis débutante en C et au cours de mon premier projet j'ai pas pu afficher une liste de chaines voila un exemple de ce que j'ai fait et je souhaite que vous pouvez m'aider a découvrir les erreurs que j'ai fait :
sachant que j'ai voulu limiter l'espace réservé pour la date a 10 et le numéro de passeport a 7 ... j'ai juste utiliser le 30 pour que je puisse utiliser le boule for de 0 a 30 .. ce qui n'a pas fonctionné
je suis débutante en C et au cours de mon premier projet j'ai pas pu afficher une liste de chaines voila un exemple de ce que j'ai fait et je souhaite que vous pouvez m'aider a découvrir les erreurs que j'ai fait :
sachant que j'ai voulu limiter l'espace réservé pour la date a 10 et le numéro de passeport a 7 ... j'ai juste utiliser le 30 pour que je puisse utiliser le boule for de 0 a 30 .. ce qui n'a pas fonctionné
#include <stdio.h> #include <stdlib.h> int main() { // declaration des variables int i,j,Nbr_de_Voyages=9 ; // compteur i int Reservation [100] ={1,2,3,4,5,6,7,8,9,10}; char NumPasseport [100][30] ={"D123306","W195457","R900149","R917289","R317943","F359714","W501407","X553380","A375198","W802146"}; char NomVoyageur [100][30]={"eya osmane","mohamed ben Hossine","slim ltaief","islem hamed","chayma osmane","souhir hidoussi","mohamed lahiani","bilel ghazeli","wejden ben zarga","chirine lahmer"}; char DateNaisVgr [100][30]={"20/12/1998","11/11/1996","23/4/1946","31/01/1986","01/09/2007","19/08/1998","29/05/1998","30/04/2000","19/09/2015","06/02/1998"}; char DateDpt [100][30]={"20/02/2015","30/12/2016","12/12/2016","09/12/2018","29/04/2017","07/11/2015","13/11/2016","05/12/2017","04/06/2016","26/07/2016"}; //date ouverture de l"agence de voyage= 2015 char DateArv [100][30]={"28/02/2015","02/01/2017","26/12/2016","12/12/2018","04/05/2017","17/11/2015","18/11/2016","08/12/2017","24/06/2016","30/07/2016"}; //8..4..14..3..6..10..5..3..20..4. char VilleDest [100][30]={"Antalya","paris","Antalya","Roma","Antalya","Antalya","canberra","thailande","Ankara","Berlin"}; char PaysDest [100][30]={"Turquie","France","Turquie","Italia","Turquie","Turquie","australie","Thailande","Turquie","allemagne"}; int Grp_V_F [100]; // Grp_V_F si 1 en groupe si 0 seul int NumGrp [100]; //si Grp_V_F=1 --> NumGrp=0; automatiquement // Un GROUPE est caractérisé par : /*int GRP_ID [100]; char GRP_DateDpt [100]; char GRP_DateArv [100]; char GRP_VilleDest [100]; char GRP_PaysDest [100]; int GRP_NbrVgrs [100];*/ // nafs l i kol mara taffichi beha voiyage w les caracteristicues mte3ou for (i=0;i<=Nbr_de_Voyages;i++) { for (j=0;j<=30;j++) { printf("%i \n",Reservation[i]); printf("%s \n",NumPasseport[i][j]); printf("%s \n",NomVoyageur[i][j]); printf("%s \n",DateNaisVgr[i][j]); printf("%s \n",DateDpt[i][j]); printf("%s \n",DateArv[i][j]); printf("%s \n",VilleDest[i][j]); printf("%s \n",PaysDest[i][j]); printf("%i \n",Grp_V_F[i]); printf("%i \n",NumGrp[i]); } } return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Affichage chaines de caractères en c
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Affichage double ecran - Guide
- Caractères spéciaux mac - Guide
1 réponse
Bonjour eya,
En C, une chaîne de caractères est un tableau de char (terminé par
Donc
Dal
Nbr_de_Voyagesdevrait être initialisé à 10, et ta boucle for devrait être :
for (i=0;i<Nbr_de_Voyages;i++) { printf("%i \n",Reservation[i]); printf("%s \n",NumPasseport[i]); printf("%s \n",NomVoyageur[i]); printf("%s \n",DateNaisVgr[i]); printf("%s \n",DateDpt[i]); printf("%s \n",DateArv[i]); printf("%s \n",VilleDest[i]); printf("%s \n",PaysDest[i]); printf("%i \n",Grp_V_F[i]); printf("%i \n",NumGrp[i]); }
En C, une chaîne de caractères est un tableau de char (terminé par
'\0'). Donc, un tableau de chaînes de caractères est effectivement un tableau à 2 dimensions de char (en fait, un tableau de tableaux de char) par exemple comme tu l'as exactement déclaré
char NumPasseport [100][30]où le premier indice est le nombre de chaînes et le deuxième la longueur de chaque chaîne.
Donc
NumPasseport[0]permet d'accéder à la première chaîne stockée,
NumPasseport[1]à la deuxième, ...
NumPasseport[9]à la dernière de tes 10 chaînes et la seule boucle
for (i=0;i<Nbr_de_Voyages;i++)permet effectivement de parcourir ces différentes valeurs de 0 à 9 (note le signe strictement inférieur).
Dal
MissRobet
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
ok merciii ca m'a bien aidée