Scroll to navigation

wcstok(3) Library Functions Manual 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.

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 <azamat.hackimov@gmail.com> и Yuri Kozlov <yuray@komyakino.ru>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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

5 февраля 2023 г. Linux man-pages 6.03