Функция strtok в языке C: описание и примеры использования

strtok в языке программирования C используется для разделения строки на подстроки на основе разделителя. Он принимает два аргумента: первый - указатель на строку, которую нужно разделить, и второй - строку-разделитель.

Пример использования функции strtok:

c
#include 
#include 
int main() {
    char str[] = "Hello, world! This is a test.";
    char delimiters[] = " ,.!"; // задаем разделители
    char* token = strtok(str, delimiters); // разделяем строку
    while (token != NULL) { // пока есть подстроки
        printf("%s\n", token); // выводим каждую подстроку
        token = strtok(NULL, delimiters); // продолжаем разделение
    }
    return 0;
}

В данном примере мы разделяем строку "Hello, world! This is a test." на подстроки, используя разделители " ,.!". Функция strtok находит первое вхождение любого из разделителей в строке и заменяет его на символ конца строки '\0'. Затем она возвращает указатель на начало этой подстроки. При следующем вызове strtok с аргументом NULL она продолжает разделять строку, начиная с символа, следующего за символом конца строки, и возвращает указатель на следующую подстроку.

Результат выполнения этого кода будет:


Hello
world
This
is
a
test

Однако, стоит учитывать, что функция strtok является нечасто безопасной для использования, так как изменяет исходную строку. Помимо этого, если строка содержит несколько последовательных разделителей, то strtok воспринимает все эти символы как один разделитель. Если это не является желаемым поведением, то можно воспользоваться более безопасной и предсказуемой функцией strtok_r.

Похожие вопросы на: "strtok си "

PD Merge: Simplifying Your Data Merging Process
STR: описание и использование
Rider C - мотоцикл для истинных любителей экстремальных приключений
Оператор "не равно" в Python: примеры, синтаксис и советы
Опыт программирования на языке C: учебник, примеры и задачи
SVN Tortoise: удобный клиент для управления версиями кода
Return PHP - возврат значений в PHP и его применение
Python Unzip: Unzipping Files Made Easy
Генератор мак адресов
PostgreSQL bigint: полное руководство по использованию