Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       strsep - extrage simbolul (token) dintr-un șir

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <string.h>

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

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       strsep():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 și versiunile anterioare:
               _BSD_SOURCE

DESCRIERE

       Dacă  *stringp  este  NULL,  funcția  strsep()  returnează NULL și nu face nimic altceva. În caz contrar,
       această funcție găsește primul simbol din șirul *stringp care este delimitat de unul dintre  octeții  din
       șirul  delim.   Acest simbol este terminat prin suprascrierea delimitatorului cu un octet nul ('\0'), iar
       *stringp este actualizat pentru a indica trecutul simbolului.  În cazul  în  care  nu  s-a  găsit  niciun
       delimitator, se consideră că simbolul este întregul șir *stringp, iar *stringp devine NULL.

VALOAREA RETURNATĂ

       Funcția strsep() returnează un indicator la simbol, adică returnează valoarea originală a *stringp.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ strsep()                                                                │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       4.4BSD.

NOTE

       Funcția  strsep()  a  fost  introdusă  ca înlocuitor pentru strtok(3), deoarece aceasta din urmă nu poate
       gestiona câmpuri goale.  Cu toate acestea, strtok(3) este conformă cu  C99  și,  prin  urmare,  este  mai
       portabilă.

ERORI

       Fiți prudent atunci când utilizați această funcție. Dacă o utilizați, rețineți că:

       •  Această funcție modifică primul său argument.

       •  Această funcție nu poate fi utilizată pentru șiruri constante.

       •  Se pierde identitatea caracterului de delimitare.

EXEMPLE

       Programul  de  mai jos este o adaptare a celui găsit în strtok(3), care, totuși, nu elimină delimitatorii
       multipli sau simbolurile goale:

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

   Sursa programului

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

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

           if (argc != 4) {
               fprintf(stderr, "Utilizare: %s [șir] [delimitator] [subdelimitator]\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);
       }

CONSULTAȚI ȘI

       memchr(3), strchr(3), string(3), strpbrk(3), strspn(3), strstr(3), strtok(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   creată   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   Nicio
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.03                  5 februarie 2023                                       strsep(3)