strsep(3) Library Functions Manual strsep(3) NUME strsep - extrage simbolul (token) dintr-un ir BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include char *strsep(char **restrict stringp, const char *restrict delim); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): strsep(): Incepand cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 i versiunile anterioare: _BSD_SOURCE DESCRIERE Daca *stringp este NULL, funcia strsep() returneaza NULL i nu face nimic altceva. In caz contrar, aceasta funcie gasete primul simbol din irul *stringp care este delimitat de unul dintre octeii din irul delim. Acest simbol este terminat prin suprascrierea delimitatorului cu un octet nul ('\0'), iar *stringp este actualizat pentru a indica trecutul simbolului. In cazul in care nu s-a gasit niciun delimitator, se considera ca simbolul este intregul ir *stringp, iar *stringp devine NULL. VALOAREA RETURNATA Funcia strsep() returneaza un indicator la simbol, adica returneaza valoarea originala a *stringp. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |strsep() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE Niciunul. ISTORIC 4.4BSD. Funcia strsep() a fost introdusa ca inlocuitor pentru strtok(3), deoarece aceasta din urma nu poate gestiona campuri goale. Cu toate acestea, strtok(3) este conforma cu C89/C99 i, prin urmare, este mai portabila. ERORI Fii prudent atunci cand utilizai aceasta funcie. Daca o utilizai, reinei ca: o Aceasta funcie modifica primul sau argument. o Aceasta funcie nu poate fi utilizata pentru iruri constante. o Se pierde identitatea caracterului de delimitare. EXEMPLE Programul de mai jos este o adaptare a celui gasit in strtok(3), care, totui, nu elimina 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 #include #include 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); } CONSULTAI I memchr(3), strchr(3), string(3), strpbrk(3), strspn(3), strstr(3), strtok(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 strsep(3)