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

SL & STL C++ Discussion :

[débutant] vider une string


Sujet :

SL & STL C++

  1. #1
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut [débutant] vider une string
    Bonjour,

    j'ecris une fonction qui va manipuler une chaine de caractère à chaque exécution. En fait elle doit créer un chaîne avec une série de "append", mais pour ça il faut que la chaine soit vide au début de l'execution. pour la vider je fais comme ça:
    mais j'ai le sentiment que ce n'est pas la bonne façon de faire.
    j'aurais voulu faire un
    mais
    'clear' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
    Et je pense pouvoir faire un
    mais je devine bien que pour utiliser le empty sur toute ma string, j'ai besoin d'utiliser ".begin()" et ".end()", seulement ces fonctions me retournent des "iterators" et je ne suis pas bien sur de comprendre comment ça marche.

    Est-ce que le "assign("")" est une bonne méthode? Sinon comment faire?

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    m_message.assign("")
    assign est un synonyme pour l'opérateur '=', pour remettre la chaine à une taille nulle ca revient à faire :

    ma foi, je ne vois pas ce qu'on peut faire de mieux...


    m_message.empty(???)
    Attention, empty retourne un booléen indiquant true si la chaine est vide, et false autrement et uniquement ceci.

    Sinon je vois bien une autre manière très simple mais c'est un peu tiré par les cheveux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_message.erase(0, str.size());

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    int main(void){
     
     string str = "abcdef";
     cout << str << endl;
     cout << "taille string: "<< str.size() << endl;
     
     str.erase(0, str.size());
     cout << "taille string: "<< str.size() << endl;
     
     if (str.empty() == true)
    	 cout << "vraiment vide !";
     else
    	 cout << "pas vide...";
     cout << endl;
     
     str = "12345";
     cout << str << endl;
     
     str.assign("");
     cout << "taille string: "<< str.size() << endl;
     
     str.assign("WXYZ");
     cout << str << endl;
     
     str = "";
     cout << "taille string: "<< str.size() << endl;
     
     system ("PAUSE");
     
      return 0;
    }
    ouput :

    abcdef
    taille string: 6
    taille string: 0
    vraiment vide !
    12345
    taille string: 0
    WXYZ
    taille string: 0

  3. #3
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Merci beaucoup pour ta réponse.

    c'est sur que j'ai confondu empty et erase, et ce que je cherchais à faire c'est exactement ce que tu proposes. Toutefois, après réflexion je crois qu'effectivement c'est tiré par les cheveux

    je vais rester avec mon assign, puisque tu confirmes que c'est une bonne solution

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

Discussions similaires

  1. [débutant]lire une string
    Par jocelyn54 dans le forum Débuter
    Réponses: 10
    Dernier message: 28/11/2007, 18h00
  2. Débutant-Vider une table tous les ans
    Par Michel Hubert dans le forum Sécurité
    Réponses: 13
    Dernier message: 29/08/2006, 00h21
  3. Réponses: 3
    Dernier message: 23/02/2006, 09h37
  4. [MFC] Lire une string (niveau débutant)
    Par Korskarn dans le forum MFC
    Réponses: 10
    Dernier message: 24/08/2005, 18h38
  5. [Débutant][JSP] Ajout des caractères à une String...
    Par Henkyl dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/03/2004, 16h30

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