Envoyé par
Auteur
et ? ça a marché ?
Evidemment que oui
Envoyé par
Auteur
Le plus déconcertant pour moi est de mettre un argument NULL dans la fonction pour continuer à l'utiliser avec la chaîne donnée en paramètre la 1ère fois.
ça vient de l'algo qui est un peu complexe (voir ici, un autre tuto là).
Au 1er appel, en passant la chaine en paramètre, on crée un pointeur ptr initialisé en début de chaîne :
text = "red,255,0,0"
|
ptr
Le délimiteur suivant est recherché, qui est remplacé par un caractère NUL \0 :
text = "red\0255,0,0"
|
ptr
La sous-chaîne "red" peut être retournée et le pointeur ptr pointe vers la sous-chaîne suivante (variable locale statique à strtok, et donc mémorisée pour l'appel suivant) :
text = "red\0255,0,0"
|
ptr
En mettant le 1er paramètre à NULL pour l'appel suivant, on indique de reprendre le traitement à partir de la position courante mémorisée du pointeur.
Partager