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 :

(Probl�me avec...) conversion de std::string en char


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 21
    Par d�faut (Probl�me avec...) conversion de std::string en char
    J'ai cr�� une classe et j'ai un probl�me avec son constructeur. J'ai d�fini la classe et cr�� deux variables de cette fa�on:

    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
     
    class Classe1
    {
    public:
    	Classe1(char name_[])
    	{
    		int a = 0;
    		while(a < 10)
    		{
    			name[a] = name_[a];
    			a++;
    		}
    	}
    	char name[];
    };
     
    Classe1 classe1_bonjour = Classe1("bonjour");
    Classe1 classe1_salut = Classe1("salut");
    Ensuite, j'ai tent� de cr�er un texte dans lequel se trouvait classe1_bonjour.name. Lors de l'execution du programme, le texte affich� n'�tait pas "bonjour", mais "bsalut", soit la premi�re lettre de "bonjour" suivie de "salut". Est-ce que quelqu'un peut m'aider??

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Tu dois sp�cifier la taille de name dans la d�claration de la classe.

    Pour plus de clart�, utilise un for au lieu d'un while.

    Pour instancier une classe, tu peux aussi �crire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
     Classe1 classe1_bonjour("bonjour");
    [/code]

  3. #3
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    G�rer les cha�nes de caract�res de cette mani�re en C++, en plus d'�tre erronn� et plein de failles, c'est vraiment se compliquer la vie pour rien.

    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
    #include <string>
     
    class Classe1
    {
    public :
     
        Classe1(const std::string& n) : name(n)
        {
     
        }
     
    private :
     
        std::string name;
    }; 
     
    Classe1 classe1_bonjour("bonjour");
    Classe1 classe1_salut("salut");

  4. #4
    Membre chevronn� Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par d�faut
    Le top du top c'est quand m�me d'utiliser des std::string...
    tu aurais :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A
    {
        public :
            A(const std::string& Name);
            std::string Name;
     
    };
    A::A(const std::string& Name)
    {
        this->Name = Name;
    }
    Et voil�, c'est pas bien les char[] et les char*....
    Il y a des gars qui se sont cass� le ***, et qui ont �t� pay� pour cr��r une class std::string autant s'en servir... non ?

  5. #5
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 21
    Par d�faut
    Merci, mais j'ai une erreur quand j'utilise cette m�thode. Le compilateur ne veut pas le convertir en char pour une fonction:

    c:\documents and settings\moi\mes documents\visual studio 2005\projects\allegro\allegro\main.cpp(183) : error C2664: 'textprintf' : cannot convert parameter 6 from 'std::string' to 'const char *'
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    Build log was saved at "file://c:\Documents and Settings\Moi\Mes documents\Visual Studio 2005\Projects\allegro\allegro\Debug\BuildLog.htm"

  6. #6
    Membre �prouv�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Essaye name.c_str() au lieu de name dans l'appel � textprintf.

  7. #7
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  8. #8
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 21
    Par d�faut
    c'est ce qu'il manqait

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. conversion const std::string et const char * ?
    Par panthere noire dans le forum C++
    R�ponses: 7
    Dernier message: 28/02/2011, 15h51
  2. conversion std::string -> unsigned char*
    Par acheo dans le forum Langage
    R�ponses: 3
    Dernier message: 26/02/2010, 17h35
  3. Conversion de std::string en LPCWSTR
    Par Rodrigue dans le forum SL & STL
    R�ponses: 11
    Dernier message: 16/05/2006, 15h33
  4. conversion d'un string en char *
    Par ferry.jules dans le forum C++Builder
    R�ponses: 15
    Dernier message: 12/05/2006, 22h12
  5. probl�me de conversion int[x] --> string
    Par poussinphp dans le forum SL & STL
    R�ponses: 2
    Dernier message: 17/08/2005, 14h45

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