récupérer une partie d'un char*
Bonjour à tous,
je ne sais pas si c'est moi qui ait du mal ce matin, mais je ne parviens pas à trouver comment récupérer une partie de mon char*!
Je vous explique mon problème, vous pourrez peut-être m'expliquer une solution simple:
J'ai un char* buffer, et je voudrais le découper en sous-chaînes en fonction de mots-clé.
Par exemple:
Code:
1 2
| char* strTest = "Bonjour à tous, je ne sais pas si c'est moi qui";
MaFonction(strTest, "tous", strResult); |
Et je voudrais savoir comment implémenter MaFonction(char* buffer, char* motCle, char* result); pour qu'elle me renvoie, par exemple, la sous chaîne composée de tout ce qu'il y a avant le mot clé. Dans mon exemple, elle mettrait result = "Bonjour à ";
J'espère que je suis clair :)
Merci.
Re: récupérer une partie d'un char*
Citation:
Envoyé par r0d
Je vous explique mon problème, vous pourrez peut-être m'expliquer une solution simple:
J'ai un char* buffer, et je voudrais le découper en sous-chaînes en fonction de mots-clé.
Code:
1 2
| char* strTest = "Bonjour à tous, je ne sais pas si c'est moi qui";
MaFonction(strTest, "tous", strResult); |
C'est mal parti, parce que strTest pointe sur une chaine non modifiable. Soit tu fais des copies de sous chaines, soit tu modifies l'original en rempaçant les séparateurs par des 0. Dans ce cas, la chaine doit être codée sous la forme d'un tableau de char :
Code:
char strTest[] = "Bonjour à tous, je ne sais pas si c'est moi qui";
Notas :
- strtok() fait ce que tu veux (pratique pour du quick'n dirty)...
- strto_r() est mieux (POSIX)
- sinon, j'utilise mon objet TOK :
http://emmanuel-delahaye.developpez.com/clib.htm
Module TOK
Re: récupérer une partie d'un char*
Merci pour vos réponses.
Citation:
Envoyé par Emmanuel Delahaye
strtok() fait ce que tu veux (pratique pour du quick'n dirty)...
Erf, il faut que ce soit du code nickel chrome...
Citation:
Envoyé par Emmanuel Delahaye
strto_r() est mieux (POSIX)
je vais essayer ça
Citation:
Envoyé par Emmanuel Delahaye
Erf, c'est un projet c++ en fait, ça ne compilera pas :(
P.S: ouioui, c'est un projet c++, mais ce bout de code doit être en C ^^
:)
Re: récupérer une partie d'un char*
Citation:
Envoyé par r0d
Citation:
Envoyé par Emmanuel Delahaye
Erf, c'est un projet c++ en fait, ça ne compilera pas :(
P.S: ouioui, c'est un projet c++, mais ce bout de code doit être en C ^^
:)
Dans un projet C++, tu as le droit d'avoir un fichier compilé en C. Faut juste pas se tromper dans la gestion de projet, et les extension du fichier, c'est tout. On code est fait pour ça, les headers sont C ou C++, et les sources ne compilent pas en C++, comme ça on sait tout de suite si on s'est trompé de compilateur ou non.