wcstok -
разделяет
широкосимвольную
строку на
элементы
(токены)
Standard C library (
libc,
-lc)
#include <wchar.h>
wchar_t *wcstok(wchar_t *restrict wcs, const wchar_t *restrict delim,
wchar_t **restrict ptr);
Функция
wcstok()
является
эквивалентом
функции
strtok(3)
для
широкосимвольных
строк, но к
ней
добавлен
аргумент
для
поддержки
работы в
нитях. Она
может
использоваться
для
разбиения
широкосимвольной
строки
wcs на
элементы,
где
элементом
считается
подстрока,
не
включающая
в себя
широкие
символы из
строки
delim.
The search starts at
wcs, if
wcs is not NULL, or at
*ptr,
if
wcs is NULL. First, any delimiter wide-characters are skipped, that
is, the pointer is advanced beyond any wide-characters which occur in
delim. If the end of the wide-character string is now reached,
wcstok() returns NULL, to indicate that no tokens were found, and
stores an appropriate value in
*ptr, so that subsequent calls to
wcstok() will continue to return NULL. Otherwise, the
wcstok()
function recognizes the beginning of a token and returns a pointer to it, but
before doing that, it zero-terminates the token by replacing the next
wide-character which occurs in
delim with a null wide character
(L'\0'), and it updates
*ptr so that subsequent calls will continue
searching after the end of recognized token.
Функция
wcstok()
возвращает
указатель
на
следующий
элемент
или NULL, если
больше
элементов
не найдено.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
wcstok() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
Исходная
широкосимвольная
строка
wcs
может
измениться
в процессе
работы
функции.
Следующий
код в ходе
работы
цикла
выводит
все
элементы,
содержащиеся
в
широкосимвольной
строке.
wchar_t *wcs = ...;
wchar_t *token;
wchar_t *state;
for (token = wcstok(wcs, L" \t\n", &state);
token != NULL;
token = wcstok(NULL, L" \t\n", &state)) {
...
}
strtok(3),
wcschr(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]> и Yuri Kozlov
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]