Encore un peu de courage pour un petit point d'explication :
Quand on veut désigner 1 seul caractère, on le met entre apostrophes (' sous le 4).
Ainsi, dans le if, (*p == '$') compare le caractère dont l'adresse est p avec $.
Par contre, les guillemets (" sous le 3) désignent une chaîne de caractères, par ex."abcd".
strtok attend une chaîne pour les séparateurs. Elle peut éventuellement ne contenir qu'un caractère, mais cela reste une chaîne. C'est pour cela que J-M-L avait écrit :
const char *virgule = ",";
On a allongé la chaîne en rajoutant un deuxième caractère, pour avoir :
const char virgule = ";";
On peut aussi, dans certains cas, avoir des chaînes vides, que l'on note "".
Voila, maintenant, je vous laisse tranquille,
Bonne bidouille
MicroQuettas