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 :

probleme classe et chaines de caractères


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut probleme classe et chaines de caractères
    Bonjour à tous !

    Mon problème est le suivant:

    J'ai déclaré une classe de clients avec leurs noms prenoms et soldes.
    J'en ai cree un tableau : client clientele[100]

    Je voudrais savoir comment faire pour que le client numéro 5 s'appelle Paul Durand par exemple

  2. #2
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    du code nous aurait aidé. Mais en admettant que tu es un pur débutant. Et donc que ta question (ou plutot sa réponse) est triviale
    je suppose que ton champ nom est un char[MAX_SIZE] ou un char * ont l'espace est alloué correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memcpy(clientele[4].nom,"toto");
    pourquoi 4 et pas 5, c'est parceque la prmière case de ton tableau est 0. Les informatitiens sont comme les mathematicien ils commencent à compter à 0.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci

    je pensais plus au nemcpy

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    argh... vade retro.
    En C++, pas de char*, pas de MAX_SIZE, pas de memcpy, ni même de tableau comme ça. Mais std::string et std::vector.
    http://c.developpez.com/faq/cpp/?pag...GS_type_chaine
    http://c.developpez.com/faq/cpp/?page=STL#STL_vector

    Les char*, c'est mal!

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    argh... vade retro.
    En C++, pas de char*, pas de MAX_SIZE, pas de memcpy, ni même de tableau comme ça. Mais std::string et std::vector.
    http://c.developpez.com/faq/cpp/?pag...GS_type_chaine
    http://c.developpez.com/faq/cpp/?page=STL#STL_vector

    Les char*, c'est mal!
    Ce qui me choque plus c'est la faute d'encapsulation...

    acceder directement à un membre et en plus pour le modifier, c'est réellement... ...diabolique.

  6. #6
    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
    Points : 4 625
    Points
    4 625
    Par défaut
    boost::array plutôt que std::vector si la taille est fixe.

  7. #7
    Membre averti
    Avatar de bigquick
    Profil pro
    Inscrit en
    Août 2002
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 356
    Points : 353
    Points
    353
    Par défaut
    Je ne connais pas bien Boost
    Quel est l'avantage d'un boost:array par rapport à un std::vector bien initialisé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const int NbClients = 10;
     
    Classe :: Classe()
    {
         m_Clients.resize(NbClients);
    }
     
    ou
     
    Classe :: Classe()
    : m_Clients(NbClients)
    {
    }
    (à part j'imagine un petit coût lié aux tests de dépassement de capacité du vecteur au moment des push_back)

  8. #8
    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
    Points : 4 625
    Points
    4 625
    Par défaut
    std::vector est fait pour être redimensionné.
    Par conséquent, l'implémentation utilise un pointeur et une allocation dynamique.

    boost::array est une simple encapsulation des tableaux classiques qui deviennent du coup copiables et passables par valeur.
    Voir http://www.boost.org/doc/html/array.html

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par loufoque
    std::vector est fait pour être redimensionné.
    Par conséquent, l'implémentation utilise un pointeur et une allocation dynamique.

    boost::array est une simple encapsulation des tableaux classiques qui deviennent du coup copiables et passables par valeur.
    Voir http://www.boost.org/doc/html/array.html
    Non pas particulierement, un redimensionnement provoque une réallocation de la totalité et une copie de chaque éléménent. De plus le vector fait partie de la lib standard ce qui n'est pas le cas de boost.

  10. #10
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Citation Envoyé par Gandalf
    Citation Envoyé par loufoque
    std::vector est fait pour être redimensionné.
    Par conséquent, l'implémentation utilise un pointeur et une allocation dynamique.

    boost::array est une simple encapsulation des tableaux classiques qui deviennent du coup copiables et passables par valeur.
    Voir http://www.boost.org/doc/html/array.html
    Non pas particulierement, un redimensionnement provoque une réallocation de la totalité et une copie de chaque éléménent. De plus le vector fait partie de la lib standard ce qui n'est pas le cas de boost.
    Bah, certaines parties de boost sont destinées à faire partie du standard.

  11. #11
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut Re: probleme classe et chaines de caractères
    Citation Envoyé par oilv
    Bonjour à tous !

    Mon problème est le suivant:

    J'ai déclaré une classe de clients avec leurs noms prenoms et soldes.
    J'en ai cree un tableau : client clientele[100]

    Je voudrais savoir comment faire pour que le client numéro 5 s'appelle Paul Durand par exemple
    Il me semble qu'il faut faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clientele[5]="Paul Durand"

  12. #12
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Re: probleme classe et chaines de caractères
    Citation Envoyé par reggae
    Il me semble qu'il faut faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clientele[5]="Paul Durand"
    clientele est un tableau de "client", pas de chaînes de caractères.

    pour répondre à la question, encore faudrait-il qu'on sache à quoi ressemble la classe client non ?
    - tu utilises des std::string ?
    - les attributs sont publics ?

    monClient.nom = "son nom";
    clientele[5].nom = "nom du sixième client"

  13. #13
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    C'est une erreur stupide

Discussions similaires

  1. probleme avec les chaines de caractères
    Par Mr_Nouyes dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 25/01/2013, 16h41
  2. [PHP 5.3] Class et chaine de caractère
    Par paterson dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2011, 18h00
  3. probleme avec une chaine de caractére
    Par nebilabd dans le forum C
    Réponses: 9
    Dernier message: 24/12/2010, 18h29
  4. [Tableaux] probleme tableau de chaines de caractères
    Par MortDansLAme dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2007, 09h12
  5. Problème classe perso chaine de caractères
    Par stof dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/05/2007, 11h42

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