begin process at 2012 02 08 09:52:55
  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 :35 638

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 [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53
FONCTION : CHAR * AJUSTERTAILLECHAINE() par Rockanos

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,655 sec (4)

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