Strtok
strtok este o funcție de bibliotecă standard în limbajul de programare C pentru a căuta jetoane într-un șir. Secvența apelurilor de funcții împarte șirul în jetoane separate prin caractere delimitare.
Prototipul funcției
Prototipul descris în fișierul antet string.h:
char * strtok ( char * string , const char * delim );
- string — un indicator către șirul care urmează să fie împărțit în jetoane. După apel, șirul este schimbat. Pentru un apel ulterior, puteți trece NULL, apoi funcția va continua căutarea în șirul original.
- delim este un pointer către un șir care conține delimitatori.
Valoarea returnată
Funcția returnează un pointer la primul simbol găsit în șir. Dacă nu sunt găsite simboluri, este returnat un pointer nul.
Utilizare
Conexiune
C
#include <șir.h>
C++
#include <cstring>
Exemplu de utilizare
#include <stdio.h>
#include <șir.h>
int main ()
{
char str [] = "Acesta nu este o eroare, aceasta este o caracteristică." ;
printf ( „Divizați șirul \" %s \" în token-uri." , str );
char * pch = strtok ( str , " ,." ); //delimitatorii (spațiu, virgulă, punct) sunt specificați în al doilea parametru printf ( " \n Tokens:" );
while ( pch != NULL ) // în timp ce există jetoane {
printf ( " \n %s " , pch );
pch = strtok ( NULL , " ,." );
}
returnează 0 ;
}
Concluzie:
Împărțirea liniei „Nu este un bug, este o caracteristică”. la lexeme.
Jetoane:
aceasta
nu
gândac
aceasta este
caracteristică
Securitate
Funcția strtoknu este reintratoare . Există două funcții non-standard thread-safe - strtok_s(în VC++) și strtok_r(în standardul POSIX).
Link -uri