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
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    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 confirmé 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
    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
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Par défaut
    merci

    je pensais plus au nemcpy

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    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 expérimenté
    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
    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
    Par défaut
    boost::array plutôt que std::vector si la taille est fixe.

  7. #7
    Membre chevronné
    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
    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
    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 expérimenté
    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
    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 émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    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 émérite 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
    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 : 45
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    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 émérite 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
    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