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 :

enlever un caractere redondant


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut enlever un caractere redondant
    Bonjour,

    Mon problème est que je dispose d'une chaine de caractère( de type string) telle que : a,i,o,p

    Et lorsque j'ajoute une autre chaine (string) telle que : a

    Je veux q'il me supprime le a qui apparait deux fois, et qu'il me donne à la fin : i,o,p

    Est ce qu'il existe une fonction qui fait ceci dans la bibliothèque ?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    C'est très simple : machaine.erase(0, 1);
    1er argument : numéro du caractère
    2eme argument : nombre de caractères à supprimer

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut
    moi je ne veux pas indiquer le truc à supprimer je veux q'il trouve par lui même le truc redondons et le supprime

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    Tu fais une recherche de caractère, dans ce cas !

    pour i=0;i<tailedelachaine
    si chaine[i] == lettre
    supprimer chaine[i] (avec erase)

    Apres, tu adaptes ça comme tu veux ...

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hia,

    Tu peux toujours acheter un ordinateur avec lecteur de pensées intégré.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Si l'ordre de ta chaine n'est pas important tu peux utiliser l'algorithme unique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    maChaine += maChaineAAjouter;
    std::string::iterator debut(maChaine.begin()),fin(maChaine.end());
    std::sort(debut, fin);
    std::string::iterator finUnique(std::unique(debut, fin));
    maChaine.erase(finUnique, fin);
    unique est une fonction qui, à partir d'une sequence triée(d'où l'utilisation de sort), met à la fin les doublons et renvoie un iterateur vers le premier doublon.
    Dernière modification par Invité ; 28/12/2010 à 17h26.

Discussions similaires

  1. Enlever des caracteres en debut de chaine
    Par Mathieu.Nanoux dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/07/2007, 11h14
  2. Regexp : impossible d'enlever un caractere de fin à une chaine
    Par dukesgf dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 18/08/2006, 16h19
  3. Requete pour enlever des caracteres
    Par Drozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/08/2006, 16h52
  4. [formulaire] enlever les champs redondants
    Par Mando dans le forum IHM
    Réponses: 7
    Dernier message: 23/01/2006, 17h56
  5. Enlever les espaces redondants....
    Par BFH dans le forum C
    Réponses: 3
    Dernier message: 24/10/2005, 18h00

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