IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

pb tableau de poniteur pointant sur un autre tableau ?


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut pb tableau de poniteur pointant sur un autre tableau ?
    Bonjour,

    J'ai besoin d'un coup de main pour resoudre ce petit probleme de gestion, voila j'ai 2 tableaux:


    char* cours[100][5]; // tableau de pointeurs d’un étudiant, chaque pointeur pointant sur le nom du cours auquel l’étudiant est inscrit.

    char nomsCours[50][51]; // tableau des noms des cours offerts par l’Université

    J'ai 100 étudiants chacun à le droit à s'inscrir aux max 5 cours parmis 50 .

    je veux afficher les noms des cours pour chaque étudiant aux quel il est inscrit.

    Pour cela, j'ai besoin tout d'abord d'écrire une fonction qui permette de retrouver l'adresse d'une chaîne de caractères dans un tableau de chaînes de caractères (cette fonction est nécessaire pour pouvoir initialiser facilement le tableau de pointeurs cours).

    Son prototype sera:

    char* trouveAdresse(char tabCh[50][51], char ch[51]);


    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Tu es sur le mauvais forum. C'est du C et ici c'est C++.

    Après, tu ne sembles pas avoir de problème. Il ne te reste plus qu'à commencer ton travail et à nous recontacter si tu as des problèmes.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Tu es sur le mauvais forum. C'est du C et ici c'est C++.

    Après, tu ne sembles pas avoir de problème. Il ne te reste plus qu'à commencer ton travail et à nous recontacter si tu as des problèmes.

    Bonjour,
    c pas une facon de repondre aux gens qui posent des questions ,et apres tout qui t'as dit que j'ai pas commencer le travail et si j'avais pas un probleme moi je pose pas des question ok!!!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Moi j écris ca mais je sais pas si c correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    char* trouveAdresse(char *tabCh, char *ch,int nb_cours_u,  int *code_err) 
     
    {
    int i;
    char *p;
    p=NULL;
    *code_err=erreur;
     
    while(*code_err=erreur)
    {
    	for(i=0;i<nb_cours_u;i++)
    	{
     
     
    			if(*ch==*(tabCh+i))
    			{
    				p=(tabCh+i);
    				*code_err=ok;
    			}
    	}
    }			
    return(p);
    }

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Je voulais juste te dire que le forum n'est pas là pour faire tes exercices, ce que suggère ton premier message. Tu n'avais aucun problème mais là on va pouvoir commencer.

    Ensuite, ici c'est un forum C++. Il existe un forum C à côté. En C++, le problème serait codé d'une toute autre manière. Mais on va faire comme si c'était du C puisque c'est ce que ton code suggère.

    Si je reprend ce que tu as dit, tu veux "tout d'abord d'écrire une fonction qui permette de retrouver l'adresse d'une chaîne de caractères dans un tableau de chaînes de caractères".

    Un char* n'est pas un tableau de chaînes de caractères mais une chaîne de caractères.
    Le prototype de ta fonction sera donc déjà
    char* trouveAdresse(char **tabCh, char *ch,int nb_cours_u, int *code_err);

    Ensuite, pourquoi renvoyer un char *. Tu peux tout simplement renvoyer un indice et qui vaut -1 si ta recherche échoue. code_err est alors inutile d'où
    int trouveAdresse(char **tabCh, char *ch,int nb_cours_u);
    Je suppose que nb_cours_u est la taille du tableau tabCh...
    Tu pourras alors récupérer ta chaine de caractères plus simplement dans la fonction appelante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    char **tabCh;
    int size; /* Taille de tabCh */
    int index;
    ... /* ce qui va bien pour initialiser tout ceci */
    index = trouveAdresse (tabCh, "MATHS", size);
    if (index < 0) {
      printf ("Pas de cours nommé MATHS");
    } else {
      char *p_maths = tabCh[index];
    }
    La comparaison de chaînes de caractères se fait avec strcmp ( ton == ici ne fait que tester l'égalité des deux premiers caractères de chaque chaîne de caractère)

    tabCh+i s'écrit aussi tabCh[i].

    On peut coder plus élégamment sans utiliser à la fois un while et un for (le while ici est particulièrement inutile). A toi de voir comment faire mieux.

    Je n'ai pas saisi l'utilité de cette fonction pour ton problème mais je fais confiance à ta conception.

  6. #6
    Membre averti Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Points : 358
    Points
    358
    Par défaut
    Hmmmmm

    J'ai rien compris a ton bout de code ^_^.

    Néanmoins, je te conseille fortement l'utilisation de std::string plutot que des char *.

    Stoque les dans un std::set pour avoir la liste des cours, ou dans une map si tu a besoin de stoquer plus que le nom du cours( nom du prof par exemple ?), et fait ta recherche dessus, puis renvoie un pointeur vers le nom ou la structure, pour le stoquer dans le tableau des eleves ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci aoyou pour votre réponse

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/11/2008, 21h18
  2. Un refEdit pointant sur un autre classeur
    Par Skieur38 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/07/2008, 10h32
  3. Création d'un DIRECTORY pointant sur une autre machine
    Par pjmorce dans le forum Administration
    Réponses: 19
    Dernier message: 18/03/2008, 10h44
  4. copie de donnees sur un autre tableau
    Par kiriany dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/02/2008, 12h08
  5. mib : oid pointant sur un autre oid
    Par sandrineM dans le forum Développement
    Réponses: 2
    Dernier message: 28/09/2006, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo