table of contents
STRTOK(3) | Руководство программиста | STRTOK(3) |
НАЗВАНИЕ¶
strtok, strtok_r - извлечение токенов из строки
СИНТАКСИС¶
#include <string.h> 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() работает похожим образом, но вместо статического буфера использует указатель на предоставленный пользователем указатель типа char*. Этот указатель, передаваемый в параметре ptrptr, должен быть одним и тем же при обработке одной и той же строки.
ПРОБЛЕМЫ¶
Никогда не используйте эти функции. Если вы все же делаете это, то имейте в виду:
Функция strtok() использует статический буфер при разборе строки, и поэтому её небезопасно использовать в многопоточных программах. Используйте strtok_r(), если это важно для вашей программы.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
Функция strtok() возвращает указатель на следующий токен, или NULL, если токенов больше нет.
СООТВЕТСТВИЕ СТАНДАРТАМ¶
- strtok()
- SVID 3, POSIX, BSD 4.3, ISO 9899
- strtok_r()
- POSIX.1c
СМОТРИ ТАКЖЕ¶
index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3)
ПРАВА¶
Перевод с английского (C) 2000 Дмитрий Морожников
(dm@simplex.irkutsk.ru, 2:5070/141.3)
13 февраля 2000 | GNU |