IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

utilisation de bibliotheque


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Points : 80
    Points
    80
    Par défaut utilisation de bibliotheque
    Bonjour,
    je cherche a extraire les mots d'une chaine en fonction d'un séparateur j'ai trouvé 2 fonctions intéressantes mais je ne sais pas comment les utiliser (je ne comprends pas les prototypes) voici des liens vers la description des fonctions
    http://www.linux-kheops.com/doc/man/.../strtok.3.html
    http://www.linux-kheops.com/doc/man/.../strsep.3.html
    les prototypes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //fonction a éviter a priori
    char *strtok (char *s, const char *delim);
    char *strtok_r (char *s, const char *delim, char **ptrptr);
     
    //celle que je veux utiliser
    char *strsep (char **stringp, const char *delim);
    voici ce que je comprends :
    char *strsep (char **stringp, const char *delim);
    la fonction renvoie une chaine de caractère prend pour paramètre un séparateur (delim) et la chaine a traiter mais je ne vois pas comment récupérer les éléments, sont-ils stocké dans une table (ce que je pense), il y a aussi le '*' dans char *strsep() je ne sais pas a quoi sert '*'. Bref pouvez-vous m'aider a comprendre ce que signifie ce type de déclaration et un petit exemple d'utilisation de la fonction ?

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Salut,
    Leur fonctionnement est simple, voici deux exemples d'utilisations :
    Code char *strtok(char *str, const char *delim); : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <stdio.h>
    #include <string.h>
    /* La chaîne à spliter est passée en argument au tout premier appel uniquement, pour le reste se sera NULL */
    int main( void )
    {
    	char s[]="http://www.developpez.net/forums/d640917/c-cpp/c/debuter/utilisation-bibliotheque/";
     
    	char *p=s;
    	/* /!\ strtok modifie la chaîne passée en arguments */	
    	while( (p=strtok(p,"./"))!=NULL)
    	{
    		printf("[%s]\n",p);
    		p=NULL;
    	}
     
    	return 0;
    }
    Code Résultat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [http:]
    [www]
    [developpez]
    [net]
    [forums]
    [d640917]
    [c-cpp]
    [c]
    [debuter]
    [utilisation-bibliotheque]
    Code char *strsep(char **stringp, const char *delim); : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <stdio.h>
    #include <string.h>
     
    int main( void )
    {
    	char s[]="http://www.developpez.net/forums/d640917/c-cpp/c/debuter/utilisation-bibliotheque/";
     
    	char *p=s;
    	char *token;
    	/* /!\ strtok modifie la chaîne passée en arguments */	
    	while( (token=strsep(&p,"./"))!=NULL)
    	{
    		printf("[%s]\n",token);
    	}
     
    	return 0;
    }
    Code Résultat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    [http:]
    []
    [www]
    [developpez]
    [net]
    [forums]
    [d640917]
    [c-cpp]
    [c]
    [debuter]
    [utilisation-bibliotheque]
    []
    Tu as certainement compris la différence entre ces deux fonctions, strsep renvoie une chaîne vide si elle rencontre deux délimiteurs consécutif tandis que strtok saute tout simplement pour traiter la suite de la chaîne, autre différence strsep fait bouger le pointeur automatiquement d'où le passage de son adresse alors qu'avec strtok ceci est géré en interne d'où le NULL pour signifier que l'on travaille sur la même chaîne.

    Sinon strtok est plus portable, d'ailleurs je ne connaissais pas strsep .

    Bon courage !
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Points : 80
    Points
    80
    Par défaut
    merci beaucoup de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/05/2013, 10h29
  2. [GD] Utiliser la bibliotheque GD pour creer des images cliquables
    Par willyg28 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 05/04/2012, 18h24
  3. utiliser la bibliotheque glade avec code blocks
    Par luchermannguehi dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 07/04/2010, 19h55
  4. [ITK] Utiliser la bibliotheque ITK sous DevC++
    Par frenchnounours dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 01/06/2007, 14h23
  5. [C++]bibliotheque utilisant les sockets et un peu plus...
    Par hansaplast dans le forum Développement
    Réponses: 3
    Dernier message: 05/12/2005, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo