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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.