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 () вважається першим викликом для цього широкого рядка. Функція шукає перший широкий символ, який не міститься у delim. Якщо такого широкого символу не знайдено, широкий рядок не містить жодного маркера. Отже, повертається нульовий покажчик.
    Якщо такий широкий символ знайдено, функція шукає широкий символ, який присутній у delim. Якщо роздільник не знайдено, 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; )

Коли ви запускаєте програму, результат буде:

 Лексемами є: папуга сова горобець голуб ворона

Цікаві статті...