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 :

Supression "\t" et "\s" en avant d'une string


Sujet :

C++

  1. #1
    Membre du Club
    Femme Profil pro
    Bio-informaticienne
    Inscrit en
    Septembre 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Bio-informaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2009
    Messages : 97
    Points : 54
    Points
    54
    Par défaut Supression "\t" et "\s" en avant d'une string
    Voila mon prbleme est simple j'ai differentes string du type :

    aaaaaa
    bbbbb
    le truc c est que certaine contienne des espaces en amont d'autres des tabulations et d'autres les deux !!!
    J'aimerais pouvoir facilement supprimer c'est différents en amont des chaines
    une idée ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Utilise std::string::erase, std::find_if, std::not1 et std::isspace pour tester si le caractère est un caractère 'blanc' ( '\t', '\n', '\v', ' ', ...) :

    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
     
    #include <algorithm> // pour find_if
    #include <string>
    #include <cctype> // pour isspace
     
    //....
     
    std::string maChaine( "  \t   monTexte");
     
    std::string::iterator fin = std::find_if(maChaine.begin(), maChaine.end(), std::not1(std::isspace));
     
    if(fin !=maChaine.end())
    {
        maChaine.erase(maChaine.begin(), fin);
    }
    Plus simplement si tu ne veux supprimer que les tabulations et les espaces blancs, tu peux utiliser std::string::find_first_not_of :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    std::string::size_type fin = maChaine.find_first_not_of("\t "); // un espace après l'\t
    if(fin != std::string::npos)
    {
        maChaine.erase(0, fin);
    }

  3. #3
    Membre du Club
    Femme Profil pro
    Bio-informaticienne
    Inscrit en
    Septembre 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Bio-informaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2009
    Messages : 97
    Points : 54
    Points
    54
    Par défaut
    Merci j'opte pour la deuxieme methode Juste parfait ce fonctionne nickel.

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

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