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 :

[C++] string -> const char*


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 57
    Par d�faut [C++] string -> const char*
    Bonsoir,

    j'aimerais cr�er en C++ (donc avec les new) un tableau 4D
    La premi�re dimension serait de type int tandis que les 3 autres dimension seraient de type char*


    Pour 1 num�ro je voudrais 3 char*

    exemple :

    [int numero1] [int numero2] [int numero3]
    [char* champ1.1] [char* champ2.1] [char* champ3.1]
    [char* champ1.2] [char* champ2.2] [char* champ3.2]
    [char*champ1.3] [char*champ2.3] [char*champ3.3]

    ca fait un bon moment que je suis dessus et je ne vois toujours pas comment faire :S


    Merci bien pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Par d�faut
    OK si je comprends bien, en fait tu veut faire un tableau � une dimension dont chaque �l�ment est un triplet de char*

    Donc (toujours si je comprend bien la question) il faudrait (possibilit�, il y en a d'autre) d�finir une classe groupant 3 char* :
    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
     
    class triplet
    {
    public:
        triplet(const char* c1 = 0,
                  const char* c2 = 0,
                  const char* c2 = 0)
        :    champ1(c1),
             champ2(c2),
             champ3(c3){}
     
        const char* champ1;
        const char* champ2;
        const char* champ3;
    }
    Ensuite plusieurs cas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Voici une table de taille fixe et prévu à la compilation
    triplet table[constante];
    // Accès au champ 1 de l'élement premier :
    table[0].champ1;
     
    // Autre méthode, pointeurs, fixé après coup.
    triplet table2 = new triplet[variable];
    //...
    delete[] table2;
     
    // Maintenant une table de taille variable
    std::vector<triplet> table3;
    table3.push_back(triplet("Salut", "Tout", "Le monde"));
    J'esp�re ne pas �tre � cot� de la question
    ++

  3. #3
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Rien compris.
    Je n'ai pas l'impression que l'on ait les m�mes d�finitions pour "tableau" et pour "dimension de tableau".

    Tu t'en servirais comment de ton truc ?


    EDIT: Si Syrmonsieur a bien compris ce que tu voulais faire, son code causera des gros ennuis relativement � la gestion de la m�moire. L�, �a passe car il n'utilise que des chaines constantes litt�rales dans son exemple.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  4. #4
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    il suffit de faire un tableau de tuple<int, std::string, std::string, std::string>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Par d�faut
    EDIT: Si Syrmonsieur a bien compris ce que tu voulais faire, son code causera des gros ennuis relativement � la gestion de la m�moire. L�, �a passe car il n'utilise que des chaines constantes litt�rales dans son exemple.
    En effet, pour �viter les probl�mes, il vaudra mieux utiliser des std::string.
    Enfin, �a d�pends de ce que tu veux faire...�a repr�sente quoi au juste ? (�a m'aurait aider pour bien comprendre ta question, l� je suis peut etre � cot�...)


    ++

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    On ne peut pas utiliser autre chose qu'un type entier comme indice de tableau "tableau".
    Si tu veux indicer un tableau avec une cha�ne, il te faut un tableau associatif.


    Ou bien, tu as mal dit ce que tu voulais et tu cherches plut�t un ensemble (genre std::set) de tuples (entier, chaine, chaine, chaine)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. conversion const std::string et const char * ?
    Par panthere noire dans le forum C++
    R�ponses: 7
    Dernier message: 28/02/2011, 15h51
  2. std::string ou const char*
    Par amineabm dans le forum D�buter
    R�ponses: 14
    Dernier message: 01/02/2011, 10h12
  3. R�ponses: 4
    Dernier message: 28/01/2010, 11h28
  4. Convertir String^ en const char*
    Par Sixdeux dans le forum C++/CLI
    R�ponses: 3
    Dernier message: 22/05/2007, 09h58
  5. R�ponses: 3
    Dernier message: 25/10/2006, 22h54

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