Strtok : exemple d'utilisation

Soyez le premier à donner votre avis sur cette source.

Snippet vu 51 694 fois - Téléchargée 32 fois

Contenu du snippet

Bein c'est juste un petit exemple d'utilisation de la commande strtok. Suite à une demande du forum

Compilateur Dev C++

Source / Exemple :


/********************************************************/
/*							*/
/* 		Utilisation de STRTOK	                */
/* Permet de compter le nombre de mot de la phrase      */
/* Permet d'extraire les différents mots                */
/* selon le caractere "space"                           */
/* NOTA : Aucun controle dans le prog !                 */
/*							*/
/*  Créateur : Trinta                                   */
/*  Date de création : 04/06/2003                       */
/*                                                      */
/*  Version : 1.0.0                                     */
/*  Date de modification : 04/06/2003                   */
/*  FREEWARE                                            */
/*                                                      */
/********************************************************/

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

main ( )
{
char	*pointeur;
char	*separateur = { " " };     // Le séparateur
char 	*buffer;
char    *Chaine_Entrante="bonjour je m'appelle Trinita";
int     nb_mot=1;
	
buffer = strdup ( Chaine_Entrante );

// premier appel,
pointeur = strtok( buffer, separateur  );
printf ("Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
	    
while( pointeur != NULL ) 
{
// Cherche les autres separateur
pointeur = strtok( NULL, separateur  );
if ( pointeur != NULL )
{
nb_mot++; // increment du nombre de mot	
printf ("Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
}
}
    
getchar (); // pause en mode console
    
return 0 ;
}

Conclusion :


RESULTAT DU PROGRAMME :
Mot de la phrase numero : 1 bonjour
Mot de la phrase numero : 2 je
Mot de la phrase numero : 3 m'appelle
Mot de la phrase numero : 4 Trinita

Nota : Aucun controle n'est effectue c 'est tout simple...

Bon Dev

A voir également

Ajouter un commentaire

Commentaires

Messages postés
22
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
22 août 2008

Simple et bien expliqué
Messages postés
119
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
11 août 2010

merçi pour cette exemple ça ma bien aidée
Messages postés
25
Date d'inscription
vendredi 13 octobre 2006
Statut
Membre
Dernière intervention
25 mars 2011
25
Avantages du strtok :
- on peut mettre une liste de séparateurs, donc c'est plus facile à gérer qu'un while.
- on peut changer la liste de séparateurs entre deux appels.

Gros inconvénients :
- ça utilise une globale pour conserver le pointeur entre 2 appels, donc si une fonction fait une boucle sur un strtok et qu'elle en appelle une autre qui utilise aussi strtok, au retour on a perdu la première boucle (pas réentrant du tout !)
- la chaîne en entrée est modifiée (d'où le strdup de l'exemple fourni je suppose -- il manque d'ailleurs le free correspondant).

Globalement :
 connaître, mais à utiliser avec parcimonie !
Messages postés
36
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
13 juillet 2006

comment on fait si on veut mettre le mot dans une variable au lieu de l imprimer?
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
Perso je préfère le while aussi, au moins on sait où on va. Après chacun est libre de coder comme il le veut, m'enfin.
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.