dwww Home | Manual pages | Find package

strsep(3)                  Library Functions Manual                  strsep(3)

NOM
       strsep - Extraction de séquence d'une chaîne

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #include <string.h>

       char *strsep(char **restrict stringp, const char *restrict delim);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consulter
   feature_test_macros(7)) :

       strsep() :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           glibc 2.19 et antérieures :
               _BSD_SOURCE

DESCRIPTION
       Si *stringp est NULL, la fonction strsep() renvoie NULL et ne fait rien
       d'autre.  Dans  le  cas contraire, cette fonction recherche la première
       séquence (token) de la chaîne *stringp qui est délimitée par  l'un  des
       octets  de  la chaîne delim. La séquence renvoyée est terminée en écra-
       sant le séparateur avec un octet NULL (« \0 ») et *stringp  est  mis  à
       jour  pour  pointer  après la séquence. Dans le cas où aucun séparateur
       n'est trouvé, la séquence extraite est constituée de  toute  la  chaîne
       *stringp, et *stringp vaut NULL.

VALEUR RENVOYÉE
       La  fonction strsep() renvoie un pointeur sur la séquence, c'est-à-dire
       la valeur originelle de *stringp.

ATTRIBUTS
       Pour une explication des termes utilisés dans cette section,  consulter
       attributes(7).

       ┌─────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├─────────────────────────────────────┼──────────────────────┼─────────┤
       │strsep()                             │ Sécurité des threads │ MT-Safe │
       └─────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS
       4.4BSD.

NOTES
       La fonction strsep() a été introduite en remplacement de strtok(3), qui
       ne peut pas traiter les champs vides. Néanmoins, strtok(3) est conforme
       à C99 et est donc plus portable.

BOGUES
       Faites  attention  quand vous utilisez cette fonction. Si vous l'utili-
       sez, prenez note des informations suivantes :

       •  Cette fonction modifie son premier argument.

       •  Cette  fonction  ne  peut  pas  être  utilisée  avec   des   chaînes
          constantes.

       •  L’identité du caractère délimiteur est perdue.

EXEMPLES
       Le  programme ci-dessous est un portage d'un programme trouvé dans str-
       tok(3), qui néanmoins n'adandonne pas délimiteurs multiples ou  de  sé-
       quences vides :

           $ ./a.out 'a/bbb///cc;xxx:yyy:' ':;' '/'
           1: a/bbb///cc
                    --> a
                    --> bbb
                    -->
                    -->
                    --> cc
           2: xxx
                    --> xxx
           3: yyy
                    --> yyy
           4:
                    -->

   Source du programme

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

       int
       main(int argc, char *argv[])
       {
           char *token, *subtoken;

           if (argc != 4) {
               fprintf(stderr, "Usage: %s string delim subdelim\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           for (unsigned int j = 1; (token = strsep(&argv[1], argv[2])); j++) {
               printf("%u: %s\n", j, token);

               while ((subtoken = strsep(&token, argv[3])))
                   printf("\t --> %s\n", subtoken);
           }

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI
       memchr(3), strchr(3), string(3), strpbrk(3), strspn(3), strstr(3), str-
       tok(3)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Gué-
       rard <fevrier@tigreraye.org>, Jean-Luc  Coulon  (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhan-
       trais@gmail.com>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   5 février 2023                       strsep(3)

Generated by dwww version 1.15 on Sat Jun 29 01:33:03 CEST 2024.