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

SL & STL C++ Discussion :

mettre un entier dans une string


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut mettre un entier dans une string
    Je créai une méthode toString pour toutes mes classes de données pour récupérer la valeur de leurs attributs. cette méthode renvoie une std::string. Mais je n'arrive pas à mettre de int dans la string. Quelle méthode faut il utiliser. En plus le man string sous linux me donne les méthodes de string.h
    Help
    Merci

  2. #2
    Membre régulier Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Points : 123
    Points
    123
    Par défaut
    j'ai rencontré le même problème : impossible de convertir un int en std::string

  3. #3
    Membre régulier Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Points : 111
    Points
    111
    Par défaut Int to string
    Bonjour,
    Voici un petit example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string TransformeEnString(int entier)
    {
      ostringstream s;
      s << entier << flush;
      return(s.str()); 
    }
    Jag

  4. #4
    Membre régulier Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Points : 123
    Points
    123
    Par défaut
    exact, je viens de le trouver dans la FAQ C++
    http://c.developpez.com/faq/cpp/?pag...GS_convertform

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Autrement pour transformer un int en une chaine de caractère:
    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
     void int_to_chaine(int n,char *res){
            if(n<0) {
                  char *q=new char[1];
                  int_to_chaine(-n,q);
                  *res='-';*(res+1)='\0';
                  strcat(res,q);
            }   
            else if(n<=9) {
                *res=char('0'+n);*(res+1)='\0';
            }
            else {
               char *ch=new char[1];
               int_to_chaine((n-n%10)/10,res);
               int_to_chaine(n%10,ch);
               strcat(res,ch);
            }
       }

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Autrement pour transformer un int en une chaine de caractère:
    Tu vas te faire massacrer, c'est le forum C++...

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Et alors un peu d'huile de coude ça fait pas de mal !!
    les char * c'est la galère mais on peut quand meme les utilser en C++,non?
    Y a bien des milliardaires qui roulent en deux-cheveaux!

  8. #8
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Et alors un peu d'huile de coude ça fait pas de mal !!
    les char * c'est la galère mais on peut quand meme les utilser en C++,non?
    Y a bien des milliardaires qui roulent en deux-cheveaux!
    Je suis entièrement d'accord avec toi. Mais la philosophie du C++, c'est d'utiliser string au lieu de strcat.

    Après chacun est libre...

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Au delà du fait d'utiliser std::string à la place de char*, la philosophie du C++ c'est surtout de ne pas recoder ce qui l'est déjà, qui plus est dans la bibliothèque standard.

  10. #10
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par porcher
    Y a bien des milliardaires qui roulent en deux-cheveaux!
    En effet mais seulement le dimanche après-midi pour s'amuser et se rappeler le "bon vieux temps". Quand ils sont au boulot et ont besoin de se rendre à leur rendez-vous d'affaire rapidement et de manière fiable, ils reprennent leur Mercedes.
    Windows XP - Delphi 7
    Nous ne controlons une chose que si nous sommes capables de la détruire à tout moment. [Frank Herbert - Dune]

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par altreide
    En effet mais seulement le dimanche après-midi pour s'amuser et se rappeler le "bon vieux temps". Quand ils sont au boulot et ont besoin de se rendre à leur rendez-vous d'affaire rapidement et de manière fiable, ils reprennent leur Mercedes.
    Tout a fait d'accord mais je suis en WE,je ne suis pas informaticien, je n'ai pas de Mercedes,j'ai des strings ...mais j 'utilise les char * pour le plaisir et me former.C'est tout!!

  12. #12
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    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 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Il n'y a que moi que cela choque les débordements et les fuites de mémoire ? (je passe les aspects d'optimisation -> récursivité et recalculs de longueur)

    Ce n'est pas tant une question de philosophie que de "ce code est faux". De plus l'energie nécessaire pour le mettre en oeuvre correctement est largement supérieure à ce qui est réellement requis -- on rejoint la remarque de Loulou qui est valable pour tous les langages.

    Pour les pinailleurs et ce sujet en particulier, voir la série d'articles de Matthew Wilson (si mes souvenirs sont bons) qui sont disponibles dans le forum expert du C/C++ Users Journal.
    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...

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 61
    Points : 24
    Points
    24
    Par défaut
    haha ca sent le troll dans le coin ^_^... c vs c++ round 50054846461.

    moi j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     char truc[256];
    sprintf(truc,"%d",l_entier);
    c'est pas bien ca ? (noob inside ^_^) ... ok ca fait un char et pas un string mais c'est quand meme achement plus simple que le truc de porcher nan ?

  14. #14
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    haha ca sent le troll dans le coin ^_^... c vs c++ round 50054846461
    Ce n'est pas C vs C++. C'est un forum C++, et c'est normal qu'on présente les concepts du C++, plutôt que ceux du C.

    Après utiliser les char, char*, strcpy, strcat et autre ce n'est pas du tout criticable. C'est d'ailleurs lorsque l'on en fait une utilisation intensive et dans de gros programme que l'on se rend vite compte de leur limite et de leur faiblesse.

  15. #15
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par k'n1
    haha ca sent le troll dans le coin ^_^... c vs c++ round 50054846461.

    moi j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     char truc[256];
    sprintf(truc,"%d",l_entier);
    c'est pas bien ca ? (noob inside ^_^) ... ok ca fait un char et pas un string mais c'est quand meme achement plus simple que le truc de porcher nan ?
    Oui mais maintenant va faire une fonction de conversion générique avec ça (ie. qui convertisse n'importe quoi en string). Moi le truc qui me rebute le plus avec ces fonctions C, c'est de toujours avoir besoin de mon K&R sous la main pour retrouver le %truc qui va bien pour le type que je manipule.

    Bref, ce qu'il faut retenir de ce post c'est qu'on peut faire ça de 1000 manières différentes, mais que la seule à retenir pour bien coder est celle présentée dans la FAQ.

Discussions similaires

  1. problème pour mettre "<href" dans une string
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 04/12/2009, 22h18
  2. mettre des caractères dans une string
    Par will2taz dans le forum VB.NET
    Réponses: 13
    Dernier message: 13/11/2007, 17h11
  3. Mettre des espaces dans une string à intervalles réguliers.
    Par benitoelputoamo dans le forum Général Python
    Réponses: 3
    Dernier message: 15/11/2006, 16h14
  4. [Syntaxe] mettre des ' dans une string ?
    Par souch dans le forum Débuter
    Réponses: 4
    Dernier message: 14/08/2003, 16h26

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