wcstok(3)

ИМЯ
wcstok - разделяет широкосимвольную строку на элементы (токены)

LIBRARY
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.

Поиск начинается с wcs, если wcs не равно NULL, или с *ptr, если значение wcs равно NULL. Сначала пропускаются все разграничительные широкие символы, т.е. указатель «перепрыгивает» через все широкие символы, которые встречаются в delim. Достигнув конца строки, wcstok() возвращает NULL, тем самым сообщая, что не было найдено ни одного элемента, и сохраняет соответствующее значение в *ptr. Таким образом, последующие вызовы wcstok() будут возвращать NULL. В противном случае функция wcstok() распознает начало элемента и возвращает указатель на него, но перед тем, как это сделать, она завершает нулём найденный элемент, заменяя следующий широкий символ, который встретился в delim, на символ L'\0' и обновляет *ptr так, что последующие вызовы будут продолжать поиск после найденного элемента.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция 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 <azamat.hackimov@gmail.com> и Yuri Kozlov <yuray@komyakino.ru>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 (https://www.gnu.org/licenses/gpl-3.0.html) или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.