strtok_r()

Разбить строку на лексемы (с повторным запуском)

Прототип:

#include <string.h>
char * strtok_r( char *s,
const char *sep,
char **lasts );

Аргументы:

s1
NULL, или строка, которую требуется разбить на лексемы.
sep
Набор символов, разделяющих лексемы.
lasts
Адрес указателя на символ, который функция может использовать для хранения информации, необходимой ей для продолжения сканирования той же строки.

Библиотека:

libc

Описание:

Функция strtok_r() разбивает строку s на последовательность лексем, каждая из которых отделяется символом из строки, на которую указывает sep.

При первом вызове strtok_r() s должна указывать на строку с завершающим нулем, sep должна указывать на строку символов-разделителей с завершающим нулем, а параметр lasts игнорируется. Функция strtok_r() возвращает указатель на первый символ первой лексемы, записывает символ NULL в s сразу после возвращенной лексемы и обновляет lasts.

В последующих вызовах s должна быть NULL, а lasts не должен изменяться по сравнению с предыдущим вызовом, чтобы последующие вызовы перемещались по строке s, возвращая последующие лексемы до тех пор, пока лексемы в строке не кончатся. Строка-разделитель sep может отличаться от вызова к вызову. Когда в s не остается лексем, возвращается указатель NULL.

Возвращаемое значение:

Указатель на найденную лексему или NULL, если лексема не найдена.

Классификация:

POSIX 1003.1 Thread-Safe Functions

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

memchr(), strchr(), strcspn(), strpbrk(), strrchr(), strset(), strspn(), strstr(), strtok(), wcschr(), wcscspn(), wcspbrk(), wcsrchr(), wcsspn(), wcsstr(), wcstok()




Предыдущий раздел: Описание API системной библиотеки