strtok, strtok_r - извлечение элементов (токенов) из строки
НАЗВАНИЕstrtok, strtok_r - извлечение элементов (токенов) из
строки
СИНТАКСИС
#include
char *strtok(char *s, const char *delim);
char *strtok_r(char *s, const char *delim, char **ptrptr);
ОПИСАНИЕ
`Токеном' называется ненулевой элемент (непустая строка),
состоящий (-ая) из символов, не встречающихся в строке
delim, которую завершает символ \0 или символ, входящий в
delim.
Функцию strtok() можно использовать для разделения строки
s на токены. При первом вызове strtok() необходимо указать
s в качестве первого аргумента. В последующих вызовах в
качестве первого аргумента нужно использовать NULL.
Каждый вызов возвращает указатель на следующий токен или
NULL, если токенов больше не обнаружено.
Если токен завершается разделителем, то этот символ
заменяется символом \0, а указатель на следующий символ
сохраняется для следующего вызова strtok(). Разделители
могут отличаться при каждом последующем вызове.
Функция strtok_r() является реентрантной версией функции
strtok() и вместо статического буфера использует указатель
типа char*, предоставленный пользователем. Этот указатель,
передаваемый в параметре ptrptr, должен быть одним и тем
же при обработке одной и той же строки.
НАЙДЕННЫЕ ОШИБКИ
Никогда не используйте эти функции. Если Вы все-таки
делаете это, то имейте в виду:
Эти функции изменяют свой первый аргумент.
Эти функции нельзя использовать со строковыми
константами.
Информация о символах-разделителях теряется.
Функция strtok() использует статический буфер при
обработке строки, поэтому её небезопасно
использовать в программах со множеством процессов,
работающих с одной областью памяти. Если Вам
подходит strtok_r(), то используйте эту функцию.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция strtok() возвращает указатель на следующий токен
или NULL, если токенов больше нет.
СООТВЕТСТВИЕ СТАНДАРТАМ
strtok()
SVID 3, POSIX, BSD 4.3, ISO 9899
strtok_r()
POSIX.1c