Разбить строку на лексемы (с повторным запуском)
#include <string.h>char * strtok_r( char *s,const char *sep,char **lasts );
NULL
, или строка, которую требуется разбить на лексемы.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 системной библиотеки