C ++ wcstok () - Стандартная библиотека C ++

Функция wcstok () в C ++ возвращает следующий токен в широкой строке с завершающим нулем.

Функция wcstok () определена в заголовочном файле.

прототип wcstok ()

 wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

Функция wcstok () принимает три аргумента: str, delim и ptr. Эта функция находит токен в широкой строке, на которую указывает str. Разделитель указателя указывает на символы-разделители.

Эту функцию можно вызывать несколько раз для получения токенов из одной и той же широкой строки. Есть два случая:

  1. Если str не NULL:
    вызов wcstok () считается первым вызовом для этой широкой строки. Функция ищет первый широкий символ, не содержащийся в разделителе. Если такой широкий символ не найден, широкая строка не содержит токена. Таким образом, возвращается нулевой указатель.
    Если такой широкий символ обнаружен, оттуда функция ищет широкий символ, который присутствует в ограничителе. Если разделитель не найден, str имеет только один токен. Если разделитель найден, он заменяется на L ' 0', а указатель на следующий символ сохраняется в * ptr. Наконец, функция возвращает указатель на начало токена.
  2. Если str имеет значение NULL:
    вызов рассматривается как последующие вызовы wcstok, и функция продолжается с того места, где она была оставлена ​​в предыдущем вызове, с тем же * ptr.

Параметры wcstok ()

  • str: указатель на широкую строку с нулевым символом в конце для токенизации.
  • delim: указатель на широкую строку с нулевым символом в конце, содержащую разделители.
  • ptr: указатель на указатель на широкий символ, который используется wcstok для хранения своего внутреннего состояния.

wcstok () Возвращаемое значение

  • Функция wcstok () возвращает указатель на начало следующего токена, если он есть
  • Он возвращает NULL, если токенов больше не найдено.

Пример: как работает функция wcstok ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) return 0; )

Когда вы запустите программу, вывод будет:

 Жетоны: попугай, сова, воробей, голубь, ворона.

Интересные статьи...