Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2652 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  STL - Comment faire l'équivalent d'un "trim" sur une basic_string

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

STL - Comment faire l'équivalent d'un "trim" sur une basic_string

n°298092
El_gringo
Posté le 31-01-2003 à 16:28:35  profilanswer
 

Je débute en STL, je n'ai que la doc de microsoft (MSDN), qui est affreusement mal foutue, d'autant plus en ce qui concerne la STL (à mon avis, ils préfèrent qu'on utilise les MFC).
Bref, je remplace mes CString par des string (basic_string pour des char), et j'arrive pas à trouver comment faire la même chose que les méthode trimLeft (virer tous le espaces à gauche), et trimRight (virer ts les espaces à droite).
Voir aussi un trim tout court (gauche et droite).
Qqn peut m'aider ?

mood
Publicité
Posté le 31-01-2003 à 16:28:35  profilanswer
 

n°298150
Kristoph
Posté le 31-01-2003 à 17:38:36  profilanswer
 
n°298189
gloop
Posté le 31-01-2003 à 18:27:14  profilanswer
 

dans le code suivant str est la chaine à striper
 

Code :
  1. // Ltrim
  2.    std::string str2 = str.substr (str.find_first_not_of (" " ));
  3.    // Rtrim
  4.    std::string str3 = str.substr (0, str.find_last_not_of (" " ) + 1);
  5.    // Trim
  6.    std::string str4 = str.substr (str.find_first_not_of (" " ));
  7.    str4 = str4.substr (0, str4.find_last_not_of (" " ) + 1);

n°300774
El_gringo
Posté le 04-02-2003 à 11:17:37  profilanswer
 

gloop a écrit :

dans le code suivant str est la chaine à striper
 

Code :
  1. // Ltrim
  2.    std::string str2 = str.substr (str.find_first_not_of (" " ));
  3.    // Rtrim
  4.    std::string str3 = str.substr (0, str.find_last_not_of (" " ) + 1);
  5.    // Trim
  6.    std::string str4 = str.substr (str.find_first_not_of (" " ));
  7.    str4 = str4.substr (0, str4.find_last_not_of (" " ) + 1);

 


 
Merci. Ms du coup, g 2 questions :
dans le trim. ça fait quoi si str4 est NULL ?
Dans les 3 cas, si une des chaines à trimmer n'est constituée que d'espaces, ça plante. Comment pallier à ça ?

n°300807
schbounz
Posté le 04-02-2003 à 12:11:17  profilanswer
 

El_gringo a écrit :


 
Merci. Ms du coup, g 2 questions :
dans le trim. ça fait quoi si str4 est NULL ?
Dans les 3 cas, si une des chaines à trimmer n'est constituée que d'espaces, ça plante. Comment pallier à ça ?


 
str4 NULL spa possib, c'est pas un pointeur ;)  
 
Par contre str4 vide c'est possible, et ca devrait passer. Faut tester...  
 

n°300888
El_gringo
Posté le 04-02-2003 à 14:01:05  profilanswer
 

Du coup, pour un trimR, je fais :

Code :
  1. myStr.erase (myStr.find_last_not_of (" " ) + 1);


Et pour un trimL :

Code :
  1. myStr.erase (0, myStr.find_first_not_of (" " ));


ça m'économise une copie. Et ça passe qd la chaine est vide.
 
Et pour ma question sur le NULL, je m'embrouille avec le java moi... [:iznogoud_23]


Message édité par El_gringo le 04-02-2003 à 14:01:41

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  STL - Comment faire l'équivalent d'un "trim" sur une basic_string

 

Sujets relatifs
Comment transfomer de l'hexa en char ou en String ?Du C au C++ avec STL: probleme resolu mais non compris
Mettre UNE String en couleur.. + jouer un sonPour un topic completement basic
Visual Basic : repeter une action jusque...Urgent... .Text dans Visual Basic 6.0
Copie d'un fichier dans un tableau a 2 entrées de string[STL] fonctions adaptees a mes besoins ????
[vb] lancer l'impression d'un état d'access 97 par visual basic ?[STL] vector/list de structures, recherche d'elements de la structure
Plus de sujets relatifs à : STL - Comment faire l'équivalent d'un "trim" sur une basic_string


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR