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++] Concaténer un char[50] avec un int


Sujet :

C++

  1. #1
    Invité4
    Invité(e)
    Par défaut [C++] Concaténer un char[50] avec un int
    bonjour,

    je débute encore en C++,
    dans le projet, je cherche à concaténer un char[50] avec un int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Exemple
     
    int integercat = 1;
    char charcat[50] = "hello";
    strcat(charcat, &integercat);
    // pour avoir charcat = "hello1";
    Dans une doc, j'ai lu qu'il était impossible de changer le type d'une variable, donc ma requête est impossible ?

    Il faudrait convertir le int en un char, mais est-ce faisable ?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 34
    Points : 38
    Points
    38
    Par défaut
    Convertit cet entier avec "itoa" (cherche dans la msdn) ou alors vu que c'est un chiffre, ajoutes-y 0x30 mais bon, c'est pas très propre.

  3. #3
    Invité4
    Invité(e)
    Par défaut
    Citation Envoyé par Zacks
    Convertit cet entier avec "itoa" (cherche dans la msdn) ou alors vu que c'est un chiffre, ajoutes-y 0x30 mais bon, c'est pas très propre.
    MSDN, c'est la docn Microsoft ? Je code avec les bibliothèques standard, car mon exéutable tournera sur Windows et Linux, donc je pense que les solutions microsoft ne sont pas bonnes à prendre.

    C'est quoi ton 0x30 ?

  4. #4
    Invité4
    Invité(e)
    Par défaut
    je crois que je peux passer èar string.h,
    d'après la faq, je peux convertir mon integer en string, puis le convertir en char.

    Si je comprends bien, le string est un type de variable dynamique et facilité ?

  5. #5
    Invité4
    Invité(e)
    Par défaut
    Citation Envoyé par Eldacar
    je crois que je peux passer èar string.h,
    d'après la faq, je peux convertir mon integer en string, puis le convertir en char.

    Si je comprends bien, le string est un type de variable dynamique et facilité ?
    ça ne fonctionne pas, visiblement string n'accepte que des char

  6. #6
    Invité4
    Invité(e)
    Par défaut
    #include <sstream>

    int main()
    {
    // créer un flux de sortie
    std::ostringstream oss;
    // écrire un nombre dans le flux
    oss << 10;
    // récupérer une chaîne de caractères
    std::string result = oss.str();

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Voilà, c'est ça la solution
    itoa n'est plus à utiliser depuis la norme C89 - en plus, c'est du C, pas du C++ -
    Le plus simple, c'est les stringstreams, effectivement.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    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 753
    Points : 10 703
    Points
    10 703
    Billets dans le blog
    3

  9. #9
    Invité4
    Invité(e)
    Par défaut
    je vois que les strings m'éviteront les erreurs de segmentation.
    Néanmoins, j'ai besoin des char pour certaines fonctions que j'utilise comme écrire du texte avec SDL.
    Mais pour le reste, je vais passer aux string, peut-on faire des tableaux de string ?

  10. #10
    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
    Néanmoins, j'ai besoin des char pour certaines fonctions que j'utilise comme écrire du texte avec SDL.
    std::string::c_str() te renverra un const char*.

    Mais pour le reste, je vais passer aux string, peut-on faire des tableaux de string ?
    std::vector<std::string>

  11. #11
    Invité4
    Invité(e)
    Par défaut
    ah parfait, c'est tout ce que je voulais savoir.
    Merci beaucoup

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/08/2011, 22h49
  2. Réponses: 5
    Dernier message: 20/03/2009, 18h16
  3. Problème de buffer avec des int et des char
    Par Lolita59 dans le forum Réseau
    Réponses: 23
    Dernier message: 04/05/2006, 11h09
  4. [MySQL] concaténer une requête sql avec condition
    Par maliak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/02/2006, 12h01
  5. concaténation de char et float
    Par gup dans le forum C
    Réponses: 11
    Dernier message: 31/12/2005, 00h15

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