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 :

Remplacement caractere const char *


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 33
    Points : 17
    Points
    17
    Par défaut Remplacement caractere const char *
    Salut,

    Je vous explique mon problème je récupère une chaine de caractère et j'aimerais remplacer un des caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const char* buffer = "C:\Program Files\Microsoft\";
    buffer->Replace('\','\\');
    J'avais fait ce bout de code mais ça ne fonctionne pas et j'ai plein d'erreur, est ce que quelqu'un pourrait m'aider svp ?

    Merci d'avance

    Boboz2

  2. #2
    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
    Bonjour,
    1/Une chaîne en dur dans le code source de type "C:\Program Files\Microsoft\" voit les caractères '\' traités par le compilateur spécialement. Si tu veux les insérer, il faut les échapper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\\Program Files\\Microsoft\\"
    2/std::string est à préférer à const char * dans un code C++ et d'autant que std::string::c_str() te retourne un const char * si tu dois t'interfacer avec une fonction demandant ce type.
    3/Ensuite, une petite boucle pour remplacer la chaîne:
    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 <iostream>
    #include <algorithm>
    #include <string>
     
     
    int main() 
    {
       std::string buffer = "C:\\Program Files\\Microsoft\\";
       size_t it = buffer.find('\\');
       while(it<buffer.length()){
          buffer.replace(it,1,"\\\\");
          it = buffer.find('\\',it+2);
     
       }
       std::cout<<buffer<<std::endl;
     
       return 0;
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Merci bien, tout fonctionne

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

Discussions similaires

  1. [Appli Console]Pb exec command ac fct system(const char *)
    Par Le_magicien999 dans le forum MFC
    Réponses: 2
    Dernier message: 16/08/2005, 16h07
  2. Conversion CString en const char*
    Par LRobi dans le forum MFC
    Réponses: 8
    Dernier message: 19/07/2005, 12h12
  3. Réponses: 13
    Dernier message: 06/03/2005, 15h21
  4. Pb d'nitialisation d'un const char*
    Par davkick dans le forum C++
    Réponses: 9
    Dernier message: 09/12/2004, 16h27
  5. remplacement caracteres de ponctuation par "_"
    Par LineLe dans le forum ASP
    Réponses: 5
    Dernier message: 22/10/2003, 08h37

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