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

СТАНДАРТЫ

C11, POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001, 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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

2 мая 2024 г. Linux man-pages (unreleased)