cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 2010
-
29 mars 2007 à 23:30
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 2010
-
30 mars 2007 à 21:05
Bonsoir,
Je dois faire une fonction de "splitage" de chaine. J'ai realisé ce bout de code et j'aimerais votre avis. La fonction n'est pas tout a fait finie mais je voudrais savoir si je peux continuer sur cette fonction.
/* tant qu'on est pas en fin de chaine */
while(*c != 0)
{
/* c'est le separatif */
if(*c == sep)
{
/* on termine la chaine */
temp[champ][index] = 0;
index = 0;
champ++;
/* re-allocation memoire pour une chaine en plus */
temp = (char**)realloc(temp, (champ + 1) * sizeof(char*));
if(temp == NULL)
{
mysplit_free(old);
return NULL;
}
// 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 )
{
// afficher chaque token extrait
std::cout << *i << '\n';
}
}
int main()
{
split( "mot-compose1;mot,compose2;[mot][compose3];mot compose4;<mot><compose><5>", ";" );
}
Ce programme produit le résultat suivant :
mot-compose1
mot,compose2
[mot][compose3]
mot compose4
<mot><compose><5>
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 20103 30 mars 2007 à 21:05
Bonsoir,
Merci pour vos réponses.
turnerom : une contrainte (qui n'en est pas une d'ailleurs), ca doit être du C.
yann_lo_san : La fonction strtok ne me suffit pas car je dois faire autre chose que de splitter ma chaine
comme quand je rencontre ' ou ", je dois mettre un \ devant ou encore, il faut que je limite la taille de mes champs et
d'autre chose encore.
C'etait plutot un avis sur la façon de faire qui m'interresse.
Car s'il y a des choses qui ne vont pas du tout, autant modifier maintenant et continuer sur "de bases saines".