Bug de fonction gettok();

Résolu
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 - 11 déc. 2004 à 23:33
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 - 12 déc. 2004 à 14:53
Salut a tous j'ai fais cette petite fonction on ne peut plus simple mais elle bug et je ne vois pas pourquoi (logique sinon je posterais pas :p)
Donc la voila:

char *gettok(char *temp,int num,char *tok)
{
char *token;
token = strtok(temp,tok);
for (int i = 1;i < num;i++)
{
token = strtok(NULL,tok);
}
if (token) return token;
else return "NoToken";
}

elle marche pour le 1er tok (c'est a dire si num=1) mais a partir du 2eme elle me renvoie "NoToken"
Plz help !!

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
12 déc. 2004 à 11:29
SI je peux me permettre, avant de poster, prend au moins 5 min pour chercher sur le net, il y a plein d'explication sur cette fonction.
Mais je dois avouer, je comprend rien a cette fonction de ....
et ce, meme si j'arrive a la faire fonctionner, regarde le code posté sur cppfrance !
http://www.cppfrance.com/code.aspx?ID=10851

De plus, si on pouvait m'expliquer l'importance de strdup avant l'appel a strtok, je suis preneur :) et ca:
pointeur = strtok( NULL, separateur );
3
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
12 déc. 2004 à 14:53
Lol
merci il me manquais juste le strdup !
mais si tu crois que je n'ai pas pris le temps de chercher avant tu te trompes ! j'y ai au moin passé 30 min :p
++
0
Rejoignez-nous