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 :

fonction pour changer du string en char


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Points : 26
    Points
    26
    Par défaut fonction pour changer du string en char
    Bonjour,

    j'ai créer un programme c++ console qui utilise un socket.

    celui ci à été créer sous codeblock via mingw sous windows.

    Le dis socket travaille avec du char, je ne sais pas comment faire avec du string

    du coup, je me retrouve à vouloir convertir du string en char chaque fois que je veux envoyé un message par mon socket pour mon tchat interne, ce que je sais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
        string message;
     
        char buffer[message.size()+1];
     
        strcpy(buffer, message.c_str());
     
        cout << buffer;

    simplement, comme dans mon programme je le fais à différente reprise, j'ai voulu faire une fonction qui le face

    ce que j'ai fais :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    #include <iostream>
    #include <string>
    #include <cstring>
     
     
    using namespace std;
     
     
    void string_to_char(string un_string, char *un_tableau);
     
    int main()
    {
        string une_requete = "Roto";
        char un_tableau;
        string_to_char(une_requete, &un_tableau);
     
        cout << un_tableau;
     
        return 0;
    }
    void string_to_char(string request, char *table) {
     
        table[request.size()+1];
     
        strcpy(table, request.c_str());
    }

    Ce code m'affiche le R de " ROTO ", et après provoque une erreur windows qui m'oblige à fermer l'application console et je ne comprends pas pourquoi, pourtant j'utilise bien un pointeur, même si c'est la première fois que j'en utilise, je ne vois pas ou sa merderais !

    J'ai aussi entendu parlé d'un truc qui s'appelle un " Cast ", seriez vous m'expliquer ?

    Aussi, je fonctionne sans debbuguer dans codeblock , seriez vous m'en conseiller un ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 386
    Points : 4 959
    Points
    4 959
    Par défaut
    char un_tableau; n'est en aucun cas un tableau, ce n'est qu'un seul et unique caractère (donc c'est normal que ça ne stocke que R et que ça plante).

    la fonction c_str() de string transforme déjà une string en const char*, pas besoin de faire une fonction.

  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
    Salut,
    Citation Envoyé par stardeath Voir le message
    la fonction c_str() de string transforme déjà une string en const char*, pas besoin de faire une fonction.
    Oui. Ce n'est pas la peine de réinventer la lune. Et si besoin, descendre la string jusqu'à la socket.
    Sinon, il y a Boost.Asio pour faciliter ce genre de dvpt

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/02/2013, 05h15
  2. fonction pour remplir un tableau de char *
    Par saidus dans le forum C
    Réponses: 3
    Dernier message: 02/05/2009, 10h28
  3. Fonction pour changer la langue du clavier
    Par aliwatte dans le forum Windows
    Réponses: 0
    Dernier message: 14/02/2009, 14h26
  4. Réponses: 1
    Dernier message: 10/05/2006, 09h47
  5. Fonction pour changer le mot de passse d'un utitilisateur
    Par Safaritn dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 16/02/2005, 13h51

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