Rechercher une page de manuel
strtok
Langue: ru
Version: 13 февраля 2000 (fedora - 25/11/07)
Section: 3 (Bibliothèques de fonctions)
Sommaire
НАЗВАНИЕ
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)
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre