#include <string.h>
char *strtok(char *str1, const char *str2);
Функция strtok() возвращает указатель на следующую лексему в строке, адресуемой параметром str1. Символы, образующие строку, адресуемую параметром str2, представляют собой разделители, которые определяют лексему. При отсутствии лексемы, подлежащей возврату, возвращается нулевой указатель.
В версии С99 к параметрам str1 и str2 применен квалификатор restrict.
Чтобы разделить некоторую строку на лексемы, при первом вызове функции strtok() параметр str1 должен указывать на начало этой строки. При последующих вызовах функции в качестве параметра str1 нужно использовать нулевой указатель. Этим способом вся строка разбивается на лексемы.
При каждом обращении к функции strtok() можно использовать различные наборы разделителей.
Пример
Эта программа разбивает строку «Травка зеленеет, солнышко блестит» на лексемы, разделителями которых служат пробелы и запятые. В результате получится
Травка|зеленеет|солнышко|блестит
#include <stdio.h>
#include <string.h>
int main(void)
{
char *p;
p = strtok("Травка зеленеет, солнышко блестит", " ");
printf(p);
do {
p = strtok('\0', ", ");
if(p) printf("|%s", p);
} while(p);
return 0;
}
Зависимые функции
strchr() strcspn() strpbrk() strrchr() strspn()