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 :

tableau de pointeurs vers des chaines de caracteres


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut tableau de pointeurs vers des chaines de caracteres
    bonjour,

    J'ai un petit probleme de tableau de pointeurs vers des chaines de caracteres.

    Je m'explique : je dois creer dynamiquement un tableau contenant N mots de C caracteres (chaques mots contient un nombre different de caracteres)

    J'ai trouvé cette declaration :

    avec mots correspondant au nombre de mots

    Le probleme c'est que je dois ecrire chaque mot caractere par caractere.

    mais je ne sais pas comment acceder au caractere i du mot j.

    J'ai essayé tab[i][j] et ca ne marche pas.

    J'ai trouvé ceci aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char (*tab[mots])[nb_caractere]
    Le probleme ici c'est que chaques mots aura le meme nombre de caracteres...

    Si quelqu'un pouvait eclairer ma lanterne...

    Merci par avance

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    A mon avis le plus simple est char **, c'est a dire un tableau de pointeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #define N 10
    char **tab=NULL;
    int i=0;
     
    tab = (char **)malloc(N*sizeof(*tab));
    //FIXME: verifier tab != NULL
    for(i=0;i<N;i++){
        tab[i]=strdup("toto"); //FIXME: allocation a verifier
        if (tab[i][2]=='t')
            printf("OK\n");
    }
    Rq:
    - tab[i][j] devrait marcher
    - char (*tab[mots])[nb_caractere] a un niveau en trop

  3. #3
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par edenyorke
    Le probleme c'est que je dois ecrire chaque mot caractere par caractere.

    mais je ne sais pas comment acceder au caractere i du mot j.

    J'ai essayé tab[i][j] et ca ne marche pas.
    Ce n'est pas ainsi qu'il faut raisonner, en fait c'est l'inverse.
    tab[i][j] permet d'accéder au caractère j du mot i.

    Pour allouer dynamiquement un tableau à deux dimensions:
    Comment allouer dynamiquement un tableau à 2 dimensions ?

    P.S: Penses aussi à tester le retour du malloc afin de savoir si l'allocation a échoué ou non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parcourir des chaines de caracteres et stocker dans un tableau string
    Par cisco.nat dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/05/2013, 01h09
  2. Tableau de pointeurs vers des objets
    Par rdtech dans le forum Débuter
    Réponses: 2
    Dernier message: 17/02/2013, 19h30
  3. Réponses: 2
    Dernier message: 18/07/2010, 11h43
  4. Lire des fichiers texte (des chaines de caracteres) ifstream
    Par jamesleouf dans le forum SL & STL
    Réponses: 1
    Dernier message: 22/03/2006, 23h58
  5. [langage] Compter des chaines de caractères
    Par julfra dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2004, 17h42

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