Разделить строку на части по заданным разделителям
#include <string.h>char * strsep( char **stringp,char *delim );
libc
Функция strsep() ищет в NUL
-терминированной строке stringp, первое вхождение любого символа из delim и заменяет его на \0
, записывает местоположение следующего символа в *stringp, затем возвращает исходное значение *stringp. Если символы-разделители не найдены, strsep() устанавливает *stringp в NULL
; если *stringp изначально имеет значение NULL
, strsep() возвращает NULL
.
Указатель на исходное значение *stringp.
Анализ строк c пробельными символами, составляющих массив аргументов:
char inputstring[100];char *argv[51], **ap = argv, *p, *val;/* set up inputstring */for ( p = inputstring; p != NULL; ){while ( (val = strsep( &p, " \t" )) != NULL && *val == '\0' );*ap++ = val;}*ap = 0;
Unix
strtok(), strtok_r(), wcstok()
Предыдущий раздел: Описание API системной библиотеки