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 :

conversion const char* en string


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut conversion const char* en string
    Bonjour,
    Je fais parcourir un fichier xml pour récuperer des chaines de caractères. J'utilise la biblio xmlparser et je récupère en sortie des chaines de type const char*. Je souhaite sauvegarder ces chaines dans un vector<String>.
    Le problème est que ces chaines contiennent des caractères spéciales (telque : é, &, ù...). Je suppose alors qu'il faudra lire les codes ascii de chaque carctère de la chaine.
    Par quels fonctions je pourrai transformer la variable const char* en string en passant par la transformation en codes ascii?
    Merci beaucoup pour votre aide.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Il faudrait savoir quel encodage est utilisé pour ta chaîne d'origine.

    Si tu souhaites convertir en ASCII, deux possibilités :
    - rechercher les caractères qui ne sont pas des caractères ASCII et les remplacé par un unique caractère ASCII.
    - rechercher les caractères accentué et les remplacer par des caractères non-accentués.

    Mais je suppose que tu préfère convertir en ASCII étendu qui lui gère les accents, à moins que tu ne préfère convertir vers l'encodage utilisée par l'utilisateur ?

    Sinon il faudrait regarder du côté de std::locale et std::locale::facet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    Rebonjour,
    Je souhaite garder les chaînes tel qu'ils existent dans le fichier (avec les accents) et les sauvegarder dans une variable de type string

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    As-tu déjà essayé de mettre ta chaîne dans ton std::string tout bêtement sans actions particulière ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const char * p = "Ma chaine";
    std::string monString = p;
    S'il n'y a pas de problème d'encodage, il n'y a aucun soucis.

  5. #5
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par Neckara Voir le message
    As-tu déjà essayé de mettre ta chaîne dans ton std::string tout bêtement sans actions particulière ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const char * p = "Ma chaine";
    std::string monString = p;
    S'il n'y a pas de problème d'encodage, il n'y a aucun soucis.
    Entièrement d'accord avec ça, au pire un std::wstring doit faire l'affaire.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/04/2011, 16h54
  2. Conversion const char* vers std::string
    Par scheme dans le forum C++
    Réponses: 4
    Dernier message: 21/09/2010, 11h02
  3. Problème conversion const char *
    Par autoz dans le forum Débuter
    Réponses: 5
    Dernier message: 15/10/2009, 21h19
  4. Conversion de char* en String^
    Par Sallie dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2006, 16h27
  5. Conversion de char en string...
    Par Empty_body dans le forum Oracle
    Réponses: 2
    Dernier message: 20/03/2006, 14h34

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