table of contents
other versions
- wheezy 0.98-4
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 |