Функція strtok () в C ++ повертає наступний маркер у нульовому завершеному байтовому рядку.
прототип strtok ()
char * strtok (char * str, const char * delim);
strtok()
Функція приймає два аргументи: вул і DELIM. Ця функція знаходить маркер у рядку, на який вказує strtok
. Розмежувач вказівника вказує на розділові символи.
Цю функцію можна викликати кілька разів для отримання токенів з одного рядка. Є два випадки:
- Якщо str не NULL:
виклик strtok () вважається першим викликом для цього рядка. Функція шукає перший символ, який не міститься у delim. Якщо такого символу не знайдено, рядок не містить жодного маркера. Отже, повертається нульовий покажчик. Якщо такий символ знайдено, звідти функція шукає символ, який присутній у delim. Якщо роздільник не знайдено, str має лише один маркер. Якщо роздільник знайдено, він замінюється на ' 0', а вказівник на наступний символ зберігається у статичному місці для подальших викликів. Нарешті, функція повертає покажчик на початок маркера. - Якщо str має значення NULL:
виклик розглядається як наступний виклик strtok і функція продовжується з того місця, де вона залишилась у попередньому виклику.
Це визначається у файлі заголовка "> файл заголовка.
strtok () Параметри
str
: Вказівник на нульовий завершений рядок байтів для маркування.delim
: Вказівник на рядок байтів, що закінчується нулем, що містить розділювачі.
strtok () Повертається значення
strtok()
Функція повертає покажчик на наступний токен , якщо є, або повертає NULL , якщо не більше маркерів не знайдені.
Приклад: Як працює функція strtok ()
#include #include using namespace std; int main() ( char str() = "parrot,owl,sparrow,pigeon,crow"; char delim() = ","; cout << "The tokens are:" << endl; char *token = strtok(str,delim); while (token) ( cout << token << endl; token = strtok(NULL,delim); ) return 0; )
Коли ви запускаєте програму, результат буде:
Лексемами є: папуга сова горобець голуб ворона