Découper une chaine en plusieurs morceaux selon des critères.

Un exemple qui présente la fonction strtok qui découpe les chaines de caractères selon des séparateurs.

strtok

Voir version :

Pas de dépendances

Télécharger :

#include <stdio.h>
#include <string.h>

int main()
{
    char* sub;
    char chaine[] = "Bonjour, comment allez vous ? Moi impec !";
    sub = strtok(chaine,",?! ");
    while(sub)
    {
        printf("%s\n",sub);
        sub = strtok(NULL,",?! ");
    }
    return 0;
}



Commentaires

	Voici une fonction fort pratique.
	
	Vous avez une chaine, vous souhaitez la découper selon certains délimiteurs.
	Vous faites un strtok sur la chaine, en passant vos délimiteurs, ici ",?! ". (avec l'espace à la fin)

	Puis pour découper la suite, vous relancez la fonction avec NULL comme premier paramètre.
	
	Essayez en changeant la chaine (dans les 2 strtok) sans mettre l'espace, pour voir.

	Note : strtok n'est pas thread safe.
	Note : la chaine d'entrée est altérée. Si vous regardez "chaine" à la fin, vous n'obtenez que "Bonjour"