Alternative à la fonction strtok ?

Résolu
cs_chuckboy Messages postés 64 Date d'inscription vendredi 16 septembre 2005 Statut Membre Dernière intervention 31 mars 2009 - 20 oct. 2005 à 21:35
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 20 oct. 2005 à 22:45
Bonjour je cherche une alternative a cette fonction car je trouve quelle n'est vraiment pas bien (disons pas adapté pour mon utilisation) En réalité je ne peut utiliser strtok car je suis en multi tache et strtok semble utiliser une variable globale ... bref je veut utiliser autre chose !

Je veut séparer une string avec comme délimitateur ";"

Je ne peut pas utiliser getline non plus car le type que je recoit est une string

ex: std::string sData="ppp;aaa;bbb"

Merci !
A voir également:

5 réponses

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
20 oct. 2005 à 21:45
Salut,

si ton seul problème est le multithread.

tu peux utiliser strtok_r qui résoud ton problème.



sinon pour le découpage tu peux faire find toi-même du ';'

ou une bonne méthode bourrin : utiliser un istringstream

sur ta std::string puis un getline en précisant le séparateur ici ';'

ex: (non compilé mais c'est pour l'idée)



string line = "aaaa;bbbb;cccc";

istringstream iss( line );

string word;

while( getline( iss, word, ';' ) )

cout << word << endl;



je te laisse en exercice la version avec les find ;)

Ma participation à la saturation du net:
http://hylvenir.free.fr
3
Rejoignez-nous