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 :

Cherche comment remplacer un caractere dans une variable en c++


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut Cherche comment remplacer un caractere dans une variable en c++
    Bonjour,
    Je cherche a modifier un caractere dans une variable,
    Je m'explique si la variable contient : l-ol-
    Je voudrais remplacer tout les - par tiret, par exemple.
    Pouvez vous m'aider s'il vous plait ? merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si tu cherche à modifier le nom d'une variable à l'éxécution, c'est impossible.

    Si tu cherche à modifier le nom de la variable dans tout ton programme, ton EDI/editeur de texte doit te fournir un commande du genre "Find & Replace" ou des outils de refactorisation plus évolués.

    Si tu cherche à modifier la valeur d'une variable de type std::string, va voir du coté de std::string::replace et std::string::find

    Si tu cherche à modifier la valeur d'une variable de type char*, utilise plutot un std::string

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Bonsoir, merci de ta reponse j'ai trouver enfin presque...,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int EnleverExtension(char *lol[])
    {
    int i;
    for (i=0 ; lol[i]!=0 ; i++)
    {
    if ( lol[i]=='-' )
    lol[i] = "%055";
    }
    return lol;
    }
    voici ce que j'ai trouver mais le probleme c'est qu'il remplace bien les - mais par 5 et non %055 serait tu d'ou vient le probleme s'il te plait ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Citation Envoyé par SnT28 Voir le message
    Bonsoir, merci de ta reponse j'ai trouver enfin presque...,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int EnleverExtension(char *lol[])
    {
    int i;
    for (i=0 ; lol[i]!=0 ; i++)
    {
    if ( lol[i]=='-' )
    lol[i] = "%055";
    }
    return lol;
    }
    voici ce que j'ai trouver mais le probleme c'est qu'il remplace bien les - mais par 5 et non %055 serait tu d'ou vient le probleme s'il te plait ?
    PS : Désolé ce n'ai pas la variable mais ce qu'elle contient que je voudrait modifier ( mauvaise expression de ma part )

  5. #5
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    C'est dangereux ce que tu fais, tu veux remplacer une seule cellule de ton tableau de caractère par plusieurs caractères. Dans le meilleur des cas effectivement il remplace un seul caractère, dans le pire des cas comme il y a trop de caractères il va écrire n'importe ou en mémoire. Il te faut donc redimensionner ta chaîne de caractères car remplacer une lettre par plusieurs revient à agrandir ta chaine de caractère .
    A ta place je passerai par un string, qui te permet de localiser un caractère spécifique, de le supprimer et d'insérer une chaine de caractère à la place.

  6. #6
    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
    Par défaut
    Salut,
    Le code que tu nous présente est du code C buggé.
    En C++, il faut utiliser std::string et les algorithmes de la STL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::string EnleverExtension(std::string  param_)
    {
        std::replace(param_.begin(),param_.end(),'-','?');
        return param_;
    }

Discussions similaires

  1. Comment remplacer un mot dans une chaines de caractere?
    Par lakhdharani dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/02/2009, 11h58
  2. Réponses: 2
    Dernier message: 19/01/2006, 21h59
  3. Réponses: 2
    Dernier message: 12/01/2006, 08h34
  4. Remplacer 1 caractère dans 1 variable en KornShell
    Par chickenhuchette dans le forum Linux
    Réponses: 5
    Dernier message: 31/12/2005, 11h24

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