char *strtor(string1,string2); находит символ в string1 char *string1; строка, содержащая символы char *string2; множество символов-ограничителей
Описание.
Функция strtok читает строку string1 как множество нуль или более знаков, служащих в качестве ограничителей для символов в string1. Символы в string1 могут отделяться одним или более огра-
ничителем от string2. Символы в string1 разрываются столько раз, сколько вызывается strtok. При первом вызове strtok для заданной строки string1, strtok находит первый символ в string1, пропуская предыдущие ограничители. Указатель возвращается на первый знак. Для того, чтобы прочитать следующий символ из string1, функция strtok вызывается вместе с NULL значением для аргумента string1. Аргумент NULL строки string1 вызывает strtok для поиска следующе- го знака в предыдущей строке символов. Множество ограничителей может быть различным от вызова к вызову, так как string2 может принимать любые значения. Замечание. String1 можно модифицировать вызовами strtok, так как после вызова strtok в string1 вставляется нулевое значе- ние (').
Возвращаемое значение.
При вызове strtok первый раз, она возвращает указатель на первый символ в string1. При последующих вызовах в этой же самой строке символов, strtok возвращает указатель на следующий символ в строке. Указатель NULL возвращается, когда нет больше символов. Все символы оканчиваются нулем. См. также strcspn, strspn.
Пример.
#include #include
char *string = "a string, of , ,tokens"; . . . /* в следующем цикле собираются символы (отделенные пробе- лами или запятыми) из строки до тех пор, пока в ней ничего не ос- танется */ token = strtok(string,",");
while (token !=NULL) { /* вставляет код для обработки символа в цикле */ . . . token = strtok(NULL,","); /* берет следующий символ */ }
/* возвращаемыми символами являются "a","string", "of", "tokens". Следующий вызов strtok возвратит NULL и цикл завершает- ся */