Je m'en doute. Je ne m'en sers jamais. J'utilise plutôt mes propres routines mais si je n'avais pas donné d'exemple avec strtok mais avec mes routines, quelqu'un d'autre aurais ramené cette fonction sur le planché.
Tu dois probablement être mieu placé que moi pour le savoir mais on s'écoeure à la longue de se faire dire que sa méthode de travail n'est pas bonne et qu'une fonction désuette ou boulet (sprintf) est meilleur malgré le fait que ce n'est pas vrai du tout. Ou encore, que l'on m'ignore quand je dit, par exemple, que lire un fichier tout d'un coup et traiter le buffer avec des pointeurs après est beaucoup plus rapide que de lire que par petite section à la fois. Très frustrant tout ça.
Fini de chialer... Voici donc la routine en question. À optimiser probablement (j'ai jamais eu à traiter ce genre de context). Elle stock le tout dans un tableau de pointeur:
char test[] = "salut a tous";
char *ptr[3], *c = &test[0], *d = c;
int i = 0;
while(1)
{
if(*c == ' ' || *c == '\n')
{
*c = 0;
ptr[i++] = d; d = c+1;
}
else if(!*c) { ptr[i] = d; break; }
c++;
}
printf("%s %s %s\n", ptr[0], ptr[1], ptr[2]);
C++ (@++)