table of contents
- bookworm-backports 4.26.1-1~bpo12+1
- testing 4.26.1-1
- unstable 4.26.2-1
strsep(3) | Library Functions Manual | strsep(3) |
NUME¶
strsep - extrage simbolul (token) dintr-un șir
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <string.h>
char *strsep(char **restrict stringp, const char *restrict delim);
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 făcută 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 |