Документация по LinuxLinuxDoc.Ru 🔍

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
Читать новости Linux в Telegram
Linux - strtok, strtok_r - извлечение элементов (токенов) из строки
Мы в соцсетях ✉