A strtok () függvény a C ++ - ban egy null végű bájtos karakterláncban adja vissza a következő tokent.
strtok () prototípus
char * strtok (char * str, const char * delim);
A strtok()
függvénynek két argumentuma van: str és delim. Ez a függvény megtalálja a tokent a karakterláncban, amelyre mutat strtok
. A mutató elválasztja az elválasztó karaktereket.
Ezt a függvényt többször is meg lehet hívni, hogy azonos karakterláncokból kapjanak tokenek. Két eset van:
- Ha az str nem NULL:
Az strtok () hívását tekintjük az adott karakterlánc első hívásának. A függvény az első karaktert keresi, amely nem szerepel a tagolásban. Ha nem található ilyen karakter, akkor a karakterlánc nem tartalmaz tokent. Tehát egy null mutató kerül vissza. Ha ilyen karaktert talál, akkor onnan a függvény keres egy karaktert, amely jelen van a delimben. Ha nem található elválasztó, akkor az str csak egy tokennel rendelkezik. Ha elválasztót talál, akkor a helyére ' 0' lép, és a következő karakterre mutató mutatót statikus helyen tárolja a későbbi meghívásokhoz. Végül a függvény visszaadja a mutatót a token elejére. - Ha str értéke NULL:
A hívás az strtok későbbi hívásának tekintendő, és a funkció onnan folytatódik, ahonnan az előző meghíváskor elhagyta.
A "header file"> header fájlban van meghatározva.
strtok () Paraméterek
str
: A nullával végződő bájt karakterlánc mutatója a tokenizáláshoz.delim
: Az elválasztókat tartalmazó null végű bájt karakterlánc mutatója.
strtok () Visszatérési érték
A strtok()
függvény a mutatót a következő tokenhez adja vissza, ha van ilyen, vagy NULL értéket ad vissza, ha nem található több token.
Példa: Az strtok () függvény működése
#include #include using namespace std; int main() ( char str() = "parrot,owl,sparrow,pigeon,crow"; char delim() = ","; cout << "The tokens are:" << endl; char *token = strtok(str,delim); while (token) ( cout << token << endl; token = strtok(NULL,delim); ) return 0; )
A program futtatásakor a kimenet a következő lesz:
A jelzők a következők: papagáj bagoly veréb galamb varjú