Scroll to navigation

strsep(3) Library Functions Manual strsep(3)

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ță Atribut Valoare
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.

5 februarie 2023 Pagini de manual de Linux 6.03