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 :

concaténer deux char*


Sujet :

C++

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut concaténer deux char*
    Bonjour,
    j'aimerais savoir comment concaténer deux char* : char* a et char* b.

    Je vous explique :
    je dois convertir des objets BIGNUM en char* puis les concatener afin de pouvoir les envoyer sur le réseau ( modèle simple client / serveur écrit en C++ ).

    BIGNUM p ==> char* p |
    } ==> char* pg |
    BIGNUM g ==> char* g | } ==> char* data
    BIGNUM pub_key ========> char* pub_key |

    char* data doit contenir en fin de compte les données dans char* p suivi de celles dans char* g et enfin celles de pub_key avant d'être envoyé sur le réseau.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Salut,
    Utilise la fonction strcat dont voici le prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * strcat ( char * destination, const char * source )
    Tu as la fiche de cette fonction et un exemple ici
    Have fun...

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par ikuzar Voir le message
    Bonjour,
    j'aimerais savoir comment concaténer deux char* : char* a et char* b.

    Je vous explique :
    je dois convertir des objets BIGNUM en char* puis les concatener afin de pouvoir les envoyer sur le réseau ( modèle simple client / serveur écrit en C++ ).

    BIGNUM p ==> char* p |
    } ==> char* pg |
    BIGNUM g ==> char* g | } ==> char* data
    BIGNUM pub_key ========> char* pub_key |

    char* data doit contenir en fin de compte les données dans char* p suivi de celles dans char* g et enfin celles de pub_key avant d'être envoyé sur le réseau.

    Merci d'avance pour votre aide.
    Si c'est en C++ alors c'est BIGNUM => std::string et ensuite il n'y a plus qu'à utiliser l'opérateur + pour concaténer les chaînes de caractères et c_str() pour envoyer sur le réseau . Inutile de s'embêter avec des char*

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    D'accord.
    Et j'aimerais savoir aussi comment je peux concaténer la taille de p ( exprimée en octet: peut être size_t ) à p ( afin de marquer la fin de p et le début de g ). Par exemple

    taille_p = 64 ( octets )
    string p = "p_val"
    string g = "g_val"
    string data = taille_p + ptest + p_val + g_val

    J'aimerais savoir si taille_p sera convertis automatiquement en string ... ou bien je dois utiliser une fonction ( laqelle ...?) pour convertir la taille en string et vis versa.

    Merci d'avance

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par ikuzar Voir le message
    taille_p = 64 ( octets )
    string p = "p_val"
    string g = "g_val"
    string data = taille_p + ptest + p_val + g_val

    J'aimerais savoir si taille_p sera convertis automatiquement en string ... ou bien je dois utiliser une fonction ( laqelle ...?) pour convertir la taille en string et vis versa.
    Il faut passer par les stringstream : F.A.Q Comment convertir un nombre en une string ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    taille_p t = 64;
    string p = "p_val";
    string g = "g_val";
     
        std::ostringstream oss;
        oss << t << p << g;
        std::string data = oss.str();

  6. #6
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    En fait j'ai pensé à char*, à la base, parce que la fonction BN_bn2bin( ) convertit un BIGNUM (big number) en un char* out en big endian (http://www.openssl.org/docs/crypto/BN_bn2bin.html)
    . Donc je pense que de toute manière je dois passer par les char*. Je vais chercher une fonction qui fait char* => string.

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par ikuzar Voir le message
    En fait j'ai pensé à char*, à la base, parce que la fonction BN_bn2bin( ) convertit un BIGNUM (big number) en un char* out en big endian (http://www.openssl.org/docs/crypto/BN_bn2bin.html)
    . Donc je pense que de toute manière je dois passer par les char*. Je vais chercher une fonction qui fait char* => string.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BIGNUM b;
    std::string bignum  = bn2bin(&b);

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/03/2009, 18h16
  2. [C++] Concaténer un char[50] avec un int
    Par Invité4 dans le forum C++
    Réponses: 10
    Dernier message: 07/04/2006, 14h54
  3. concaténation de char et float
    Par gup dans le forum C
    Réponses: 11
    Dernier message: 31/12/2005, 00h15
  4. Réponses: 6
    Dernier message: 27/05/2004, 10h41
  5. Concaténer deux variables ?
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 19/12/2003, 13h53

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