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

  FORUM HardWare.fr
  Programmation
  C++

  StringTokenizer en C++ ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

StringTokenizer en C++ ???

n°1282152
agyspace
Posté le 12-01-2006 à 14:59:01  profilanswer
 

Hello,
 
J'aimerais reproduire le comportement de la classe StringTokenizer qui existe en Java en C++. En gros, recuperer les elements un a un d'une chaine composee successivement de separateur/valeur du type:
 

Code :
  1. std:string test = "001-002-003-";


 ou - est le separateur.
 
Existe-t-il une classe qui aurait le meme comportement dans la C++ std lib ou quelqu'un connait-il un moyen simple et optimise de faire cela?
 
Merci d'avance.
 
 

mood
Publicité
Posté le 12-01-2006 à 14:59:01  profilanswer
 

n°1282206
Taz
bisounours-codeur
Posté le 12-01-2006 à 15:33:55  profilanswer
 

y en a dans boost je crois. Sinon tu peux découper avec un istringstream

n°1282209
Taz
bisounours-codeur
Posté le 12-01-2006 à 15:35:30  profilanswer
 
n°1282223
Taz
bisounours-codeur
Posté le 12-01-2006 à 15:43:45  profilanswer
 

Code :
  1. #include <boost/algorithm/string.hpp>
  2. #include <string>
  3. #include <iostream>
  4. #include <vector>
  5. #include <algorithm>
  6. using namespace std;
  7. int main()
  8. {
  9.   vector<string> tokens;
  10.   boost::split(tokens, "foo bar baz", boost::is_any_of(" " ));
  11.   copy(tokens.begin(), tokens.end(), ostream_iterator<string>(cout, "/" ));
  12.   cout << '\n';
  13. }

n°1282358
agyspace
Posté le 12-01-2006 à 17:26:06  profilanswer
 

Ok merci bcp Taz :)

n°1282385
sankukai8
Posté le 12-01-2006 à 17:50:30  profilanswer
 

sinon

Code :
  1. void Tokenize(const string& str,
  2.                       vector<string>& tokens,
  3.                       const string& delimiters = " " )
  4. {
  5.     // Skip delimiters at beginning.
  6.     string::size_type lastPos = str.find_first_not_of(delimiters, 0);
  7.     // Find first "non-delimiter".
  8.     string::size_type pos     = str.find_first_of(delimiters, lastPos);
  9.     while (string::npos != pos || string::npos != lastPos)
  10.     {
  11.         // Found a token, add it to the vector.
  12.         tokens.push_back(str.substr(lastPos, pos - lastPos));
  13.         // Skip delimiters.  Note the "not_of"
  14.         lastPos = str.find_first_not_of(delimiters, pos);
  15.         // Find next "non-delimiter"
  16.         pos = str.find_first_of(delimiters, lastPos);
  17.     }
  18. }


 
trouvé sur:
http://oopweb.com/CPP/Documents/CP [...] WTO-7.html

n°1282482
Joel F
Real men use unique_ptr
Posté le 12-01-2006 à 20:54:34  profilanswer
 

moui enfin boost::tokenizer quoi :o


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

  StringTokenizer en C++ ???

 

Sujets relatifs
[Help] StringTokenizerString.EqualsIgnoreCase + StringTokenizer
StringTokenizer, ou est le problem ? :/StringTokenizer et espace
StringTokenizer 
Plus de sujets relatifs à : StringTokenizer en C++ ???


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