Функція wcstok () у C ++ повертає наступний маркер у нульовому завершеному широкому рядку.
Функція wcstok () визначена у файлі заголовка.
прототип wcstok ()
wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);
Функція wcstok () приймає три аргументи: str, delim і ptr. Ця функція знаходить маркер у широкому рядку, на який вказує str. Розмежувач вказівника вказує на символи-роздільники.
Цю функцію можна викликати кілька разів для отримання токенів з одного широкого рядка. Є два випадки:
- Якщо str не NULL:
виклик wcstok () вважається першим викликом для цього широкого рядка. Функція шукає перший широкий символ, який не міститься у delim. Якщо такого широкого символу не знайдено, широкий рядок не містить жодного маркера. Отже, повертається нульовий покажчик.
Якщо такий широкий символ знайдено, функція шукає широкий символ, який присутній у delim. Якщо роздільник не знайдено, str має лише один маркер. Якщо знайдено роздільник, він замінюється на L ' 0', а вказівник на наступний символ зберігається у * ptr. Нарешті, функція повертає покажчик на початок маркера. - Якщо 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; )
Коли ви запускаєте програму, результат буде:
Лексемами є: папуга сова горобець голуб ворона