par
moogli » 10 mars 2011, 15:42
salut,
je ne comprend pas le sens de la question
on passe en délimiteur un ou plusieurs paramètre(s). Dans l'exemple il y en a 3
- les deux points verticaux :
- le tube | (le tube)
- le virgule
strtok prend le 1er qui vient a chaque appel, a priori cette fonction garde en mémoire l'appel précédent et retourne chaque élément indépendamment, quelque soit l'ordre des tokens;
donc au 1er appel strtok trouve les deux points retourne ce qu'il y a avant
au deuxième il trouve le tube et retourne ce qu'il y a entre le tube et le délimiteur précédent (les deux points)
au troisème il trouve la virgule et retourne qu'il y a entre virgule et tube
au quatrième ah ben c'est la fin je retourne la fin juste après le dernier délimiteur trouvé (virgule)
donc le résultat de ton code est bien
@balistik : parce que la fonction retourne une chaine et pas un tableau, si tu appel une fois, 1er token trouvé, deux fois 2ème etc jusqu’à la fin de la chaine
@+
salut,
je ne comprend pas le sens de la question :)
on passe en délimiteur un ou plusieurs paramètre(s). Dans l'exemple il y en a 3
- les deux points verticaux :
- le tube | (le tube)
- le virgule
strtok prend le 1er qui vient a chaque appel, a priori cette fonction garde en mémoire l'appel précédent et retourne chaque élément indépendamment, quelque soit l'ordre des tokens;
donc au 1er appel strtok trouve les deux points retourne ce qu'il y a avant
au deuxième il trouve le tube et retourne ce qu'il y a entre le tube et le délimiteur précédent (les deux points)
au troisème il trouve la virgule et retourne qu'il y a entre virgule et tube
au quatrième ah ben c'est la fin je retourne la fin juste après le dernier délimiteur trouvé (virgule)
donc le résultat de ton code est bien
[quote]J. Gilmore:
[email protected]|Columbus, Ohio
Element = J. Gilmore <= 1er appel
Element =
[email protected] <= 2ème
Element = Columbus <= 3ème
Element = Ohio <= 4ème
[/quote]
@balistik : parce que la fonction retourne une chaine et pas un tableau, si tu appel une fois, 1er token trouvé, deux fois 2ème etc jusqu’à la fin de la chaine
@+