begin process at 2012 05 28 20:00:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

Découper un string en plusieurs strings


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Découper un string en plusieurs strings

mardi 20 février 2007 à 16:11:43 | Découper un string en plusieurs strings

novaghost

Bien le bonjour mesdames, messieurs Je viens vous exposer mon problème je souhaiterais découper un string en plusieurs savez vous quelle est la méthode la plus simple et la plus propre ? Je tiens à préciser que j'ai déjà rechercher sur google et sur CS mais sans nul doute certains d'entre vous doivent avoir un guide à me faire partager. Pour l'histoire sous google "Decouper un string" ammène sur des pages qui ne sont pas nonchalantes. :p
mardi 20 février 2007 à 16:50:44 | Re : Découper un string en plusieurs strings

mhip

Il existe la fonction strtok qui permet de decouper une chaine de caracteres. Sinon en c++ regarde l'interface de la classe string
mardi 20 février 2007 à 16:58:25 | Re : Découper un string en plusieurs strings

novaghost

effectivement j'avais zappé cette fonction. ;)
mardi 20 février 2007 à 17:18:47 | Re : Découper un string en plusieurs strings

novaghost

Dsl en fait je cherche un moyen de découper sans passer par un char *.
mercredi 21 février 2007 à 09:42:14 | Re : Découper un string en plusieurs strings

turnerom

Salut, tu peux utiliser Boost qui fait ca très bien : #include #include // découpe la chaine selon les séparateurs donnés vector split( const std::string & Msg, const std::string & Separators ) { vector v; // typedef pour alléger l'écriture typedef boost::tokenizer > my_tok; // séparateur personnalisé boost::char_separator sep( Separators.c_str() ); // construire le tokenizer personnalisé my_tok tok( Msg, sep ); // itérer la séquence de tokens for ( my_tok::const_iterator i = tok.begin(); i != tok.end(); ++i ) v.push_back(*i); return v; } Tu l'appelle ensuite comme ca : split( "mot-compose1;mot,compose2;[mot][compose3];mot compose4;<5>", ";" ); Ton vector contiendra ainsi : mot-compose1 mot,compose2 [mot][compose3] mot compose4 <5>
mercredi 21 février 2007 à 11:12:42 | Re : Découper un string en plusieurs strings

novaghost

C'est bon j'ai utilisé un iss. Je donne ma méthode, même si boost est pas mal, mais dans mon cas je préfère utiliser la mienne.

Mon fichier : "fichier.txt"
syntaxe des lignes : "bonjour, je, suis, un, exemple ; daccord , et, bien, moi, aussi;"

string cmd,commande;
ifstream tableau("fichier.txt");

while ( getline( tableau, commande, ';' ) )       // Recupération des lignes dans le fichier (commande est ma string à redécouper)
{
   commande=commande.substr(commande.find_first_not_of(' ')); // On enleve l'espace des string (histoire de chipoter)

    istringstream option(commande.data( ));      //surment pas la meilleure chose à faire
    while ( getline( option, cmd, ',')
     {
        cout << cmd << endl;
     }
}

Et si je me trompe pas cela donne :
bonjour
je
suis
un
exemple
daccord
et
bien
moi
aussi

Je dois découper ma string en deux suivant les " ; " puis en morceaux suivant les " , "
J'ai un autre problème après celui-ci pour comparé un morceau dans la partie avant le " ; " avec une ligne d'un autre fichier et si je trouve ce morceau dans la ligne de l'autre fichier. Je dois remplacer ce morceau par le morceau dans la partie après le " ; "
ex :

dans fichier.txt
"bonjour, je, suis, un, exemple ; daccord , et, bien, moi, aussi;"

dans fichier "original.txt"
"bonjour comment ca va ?"

J'extrait les morceaux de la ligne fichier.txt et je les comparent avec la première ligne de original.txt
Le but étant de trouver "bonjour" et le remplacer par "daccord" ou bien "je" par "et" si "je" est trouvé.
 Je sais c'est confu mais si quelqu'un à une idée car le find j'ai du mal à trouver ou le mettre.



Cette discussion est classée dans : string, google, découper, strings


Répondre à ce message

Sujets en rapport avec ce message

Joindre deux Strings [ par mast ] Bonjours, J'essais d'assembler 2 strings en une seule, par exemple si j'ai: string s1 = "abc" string s2 = "def" Je voudrais avoir une s3 "abcdef". Découper un string par un autre string [ par borgeomi ] borgeomibonjouuuuuuur !!!!!Je voudrais décomposer un string en fonction d'un autre string ' - ' ( space tiret space )exemple 111111 - 22222 - 3333333- gestion des caracteres d'une string entre en parametre [ par chickens ] Bonjour,j'ai un probleme je voudrais gerer les caracteres d'un code pour l'utilisateur ne puisse pas tape n'importe quoi et que se soit valide.En d'au Problème de pointeur : erreur non-lvalue in assignment [ par AmStErDaMnEd ] Bonjour,    j'ai récupéré un bon de code pour pouvoir splitter une chaine. Cela fonctionne sans pointeur. Cependant, j'ai besoin de récupérer un char* variables de portée globale [ par zorodesire2008 ] Bonjour à tousJe  suis à mes tous premiers pas dans la programmation sous visual c++( microsoft visual studio). Je voudrais définir des variables memb Noob et C/C++ [ par thedarkkillerz ] Bonjour, je suis habitué au C#  et au confort de Visual Studio et je voudrait passer au C/C++, j'ai donc suivit pas mal de cours sur le net mais il y Set transform C++ [ par ffenforce10 ] Bonjour, Voilà, j'ai un petit problème avec la fonction transform pour appliquer un foncteur... Mon code complilait lorsque j'utilisait un vecteur, m conjugaison en c++ [ par abdelali62 ] Bonsoir tt le monde c'est mon premier programme en c++ j'ai trouve une difficulter a implante le code de la fonction main mais je vais pas besser les Variable de type string en paramètre d'une fonction [ par sheep70400 ] Bonsoir à tous et à toutes,Je voudrais parcourir une chaine de caractère dans une variable de type string dans une fonction qui utilise une pile.int m


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,455 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales