begin process at 2010 02 10 09:42:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > STRTOK : EXEMPLE D'UTILISATION

STRTOK : EXEMPLE D'UTILISATION


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caractères Niveau :Débutant Date de création :04/06/2003 Date de mise à jour :05/06/2003 17:40:28 Vu :25 454

Auteur : Trinita16

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

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

Compilateur Dev C++  

Source

  • /********************************************************/
  • /* */
  • /* 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 ;
  • }
/********************************************************/
/*							*/
/* 		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  


 Sources du même auteur

Source avec Zip EXPORTSQL VIA ODBC : EXEMPLE D'UTILISATION
Source avec une capture GETFILEFTP : PERMET DE RÉCUPÉRER UN FICHIER SUR UN SERVEUR F...
Source avec Zip Source avec une capture IMPORSQL -> IMPORTATION DE FICHIER AVEC UN LIEN ODBC
Source avec Zip ENVOI DE FICHIER PAR FTP (SENDFILEFTP)
Source avec Zip DIVERS OUTILS WINDOWS : ENREGISTRER-SOUS...

 Sources de la même categorie

Source avec Zip RECHERCHE D'ANNAGRAMMES par Torin
GESTION DE CHAINE DE CARACTÉRE EN C++ AVEC NSTRING par xmustapha
Source avec Zip COMMENTER CODE C <=> ASM (WIN64) par BruNews
Source avec Zip GSTRING - GESTION DES CHAINES DE CARACTÈRES par Neokript
Source avec Zip ANALYSEUR SYNTAXIQUEV(0.1) par kohan95

Commentaires et avis

Commentaire de AmK le 04/06/2003 19:08:59

tiens je connaissais pas ça :)
maitenant je la connais grace a toi ;)

Commentaire de MoDDiB le 04/06/2003 21:24:35

merci ca me parait sympa ^^

Commentaire de Nebula le 05/06/2003 08:36:46

tite note sur laquelle je me suis deja fait avoir : faut pas l'utiliser avec plusieurs threads, sinon strtok s'emmele les pédales (ce qui est logique vu son fonctionnement, mais je l'ai vu qu'après coup...)

===&gt; parse manuel obligatoire, à moins qu'il existe une autre solution ?

Commentaire de Trinita16 le 05/06/2003 17:38:42

Merci Nebula, je vais regarder ça.
Mais pour le moment je n'ai pas eu de problème avec la fonction!

Trinita

Commentaire de gogo.prog le 19/06/2003 10:25:25

chez moi cela decoupe bien la chaine, mais apres avoir tout incrit, mon prog plante. jai devc++ beta 5

Commentaire de gogo.prog le 19/06/2003 10:29:08

oops jai rien dit, le bug venait d'autre part :)
ton code marche parfaitement :)

Commentaire de BlackGoddess le 13/06/2005 00:06:20

pour le multithreading, apparement ca deprendrait de l'implémentation de la lib c ... le crt de vs7 crée un ptr pour strtok par thread (qd on compile en mt bien sur) donc pas de soucis :p

Commentaire de Nebula le 13/06/2005 00:14:05

En effet. Et sous linux et autres *nix, il faut utiliser strtok_r (les fonctions *_r sont compatibles avec le multithreading).

Commentaire de BruNews le 13/06/2005 00:48:27 administrateur CS

jamais vu l'intérêt de ce strtok, on ballade 2 pointeurs et on a la même chose sans se poser de questions et surtout sans variable implicite qu'on ne controle pas. C'est vraiment le genre de fonction inutile et limite nuisible, tout juste bon pour celui qui arrive de VB, c'est mon avis et je le partage, pas vous ?

Commentaire de Nebula le 13/06/2005 04:14:01

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.

Commentaire de jerome86600 le 18/06/2005 18:13:04

comment on fait si on veut mettre le mot dans une variable au lieu de l imprimer?

Commentaire de bzrd le 13/11/2006 15:56:17

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 !

Commentaire de yanlou le 04/07/2008 10:57:08

merçi pour cette exemple ça ma bien aidée

Commentaire de Topnotch le 14/07/2008 15:22:08

Simple et bien expliqué

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales