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 :

string et wstring


Sujet :

C++

  1. #1
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut string et wstring
    Bonjour à tous :o

    Une petite question :

    Existe t-il une fonction chez boost ou dans la stl qui permet de convertir un wstring en string ? et l'inverse ?

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    bonjour, dans la STL il y a
    ::mbstowcs qui fait de string (en fait const char*) en wstring et
    ::wcstombs qui fait de wcha_t* en string

  3. #3
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Cool ça marche nikel...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    wstring wtest = L"blablabla";
    string test; test.resize(wtest.size());
    wcstombs(&test[0], &wtest[0], wtest.size());
    cout << test << endl;
    si vous connaissez une solution encore + simple, je suis preneur

    Merci bcp BainE

  4. #4
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    nan, j'ai pas mal cherché j'ai rien trouvé d'autre mais si quelqu'un en sait plus long ca m'interesse

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut Re: string et wstring
    Citation Envoyé par superspag
    Existe t-il une fonction chez boost ou dans la stl qui permet de convertir un wstring en string ? et l'inverse ?
    Il n'y a rien sur les string directement. Il faut utiliser le facet ctype de ton locale et utiliser les membres narrow et widen. J'ai pas le temps de donner un exemple. Peut-etre ce soir. Sinon, et si personne ne le fait, envoie moi un email pour me le rappeler au cas ou j'oublie.

  6. #6
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Oui, je viens de tomber dessus avec la MSDN...
    la fonction ctype::do_narrow m'a tout l'air d'etre ce qu'il me faut mais je n'ai pas encore reussi à l'utiliser
    Bah... je doit etre fatigué, je verai ça demain

    Merci à tous, je vous tiens au courant...

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Citation Envoyé par superspag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    wstring wtest = L"blablabla";
    string test; test.resize(wtest.size());
    wcstombs(&test[0], &wtest[0], wtest.size());
    cout << test << endl;
    Il y a un problème ici.
    Officiellement, il n'y a pas de garantie de contiguité dans les caractères qui constituent une chaine -- contrairement aux vecteurs.
    Soit, tu ne peux pas modifier la chaine via un char* extrait depuis &s[0]. Dans les faits, je ne crois pas avoir croisé d'implémentation de std::string dont les éléments ne soient pas contigus.

    Et j'imagine que la std::string est censée être encodée dans la locale globale et que la std::wtring en unicode UCS-2 (ou DBCS ? je nesais jamais)

    Bref, normalement, il faut effectivement voir du côté des code convertion facets pour pouvoir être plus souple sur l'utilisation des locales. Quant à Boost, il y a planqué, dans boost.serialize je crois, un code cvt facet pour gérer l'UTF-8. Il y en a un autre dans Adam ou Eve de chez adobe (opensource).
    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...

  8. #8
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Merci pour toutes ces aides, je pense que je vais m'en sortir maintenant :o

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. char, string, wchar_t, wstring ?
    Par Invité dans le forum SL & STL
    Réponses: 8
    Dernier message: 22/10/2014, 22h32
  2. string, wstring et dstring sont immuables ?
    Par amehat dans le forum D
    Réponses: 2
    Dernier message: 03/03/2014, 14h19
  3. Conversion string <-> wstring problème d'accent.
    Par Neckara dans le forum Débuter
    Réponses: 1
    Dernier message: 12/12/2012, 17h42
  4. char*, string et wstring
    Par esteban dans le forum C++
    Réponses: 14
    Dernier message: 18/02/2011, 15h52
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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