Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6489
Последний выпуск: 19.06.2015

strtok

[ Оглавление ]
               STRTOK
            
               #include<string.h>    требуется  только для объявления
                                     функции
            
               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 вставляется нулевое значе-
         ние ('\0').
            
               Возвращаемое значение.
            
               При вызове strtok первый раз, она возвращает  указатель  на
         первый  символ в string1. При последующих вызовах в этой же самой
         строке символов, strtok возвращает указатель на следующий  символ
         в строке. Указатель NULL возвращается, когда нет больше символов.
         Все символы оканчиваются нулем.
               См. также strcspn, strspn.
            
               Пример.
            
               #include <string.h>
               #include <stdio.h>
            
               char *string = "a string, of , ,tokens";
               .
               .
               .
               /*  в следующем цикле собираются символы (отделенные пробе-
         лами или запятыми) из строки до тех пор, пока в ней ничего не ос-
         танется */
               token = strtok(string,",");
            
               while  (token  !=NULL)   {
               /* вставляет код для обработки символа в цикле */
                      .
                      .
                      .
               token = strtok(NULL,",");
               /* берет следующий символ */
                    }
            
               /* возвращаемыми  символами  являются  "a","string",  "of",
         "tokens". Следующий вызов strtok возвратит NULL и цикл завершает-
         ся */
            
            

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
93K
05 июня 2014 года
lordnazgull
0 / / 05.06.2014
Мне нравитсяМне не нравится
5 июня 2014, 06:35:51
Функция strtok выделяет очередную часть строки, на которую указывает аргумент str, отделенную одним из символов разделителей указанных в строке, на которую указывает аргумент sep. Последовательный вызов функции strtok приводит к разбиению строки str на части (лексемы).

При первом вызове функции strtok указывается начало разделяемой строки (str) и начало строки, содержащей разделители (sep). Функция strtok поочередно просматривает символы строки str и ищет первое вхождение символа, не содержащегося в строке разделителей sep. Если символ конца строки встречен раньше чем был найден символ не входящий в строку sep, то разделить строку str на части нельзя и возвращается нулевой указатель (NULL). Если такой символ найден, он считается началом первой части строки str.

Далее функция strtok ищет разделитель, то есть символ, входящий в строку sep. Если такой символ не найден, то считается, что строка str состоит из одной части и последующее разделения строки str будут возвращать нулевой указатель. Если такой символ найден. то он заменяется нулевым символом (символом конца строки). Далее функция strtok запоминает текущую позицию (указатель на символ, с которого будет начинаться поиск следующей части строки) и возвращает указатель на начало первой выделенной части строки.

Если функция strtok вернула не нулевой указатель, можно продолжить разбиение строки str на части. Для продолжения разбиения строки, повторно вызывается функция strtok, но вместо указателя на разбиваемую строку в качестве первого аугмента указывается NULL. В этом случае функция strtok продолжит разбиение с запомненного адреса. Алгоритм разбиения при этом останется тот же.
2.
61K
30 декабря 2010 года
TauRN7
24 / / 30.12.2010
Мне нравитсяМне не нравится
10 января 2011, 23:48:32
При вызове strtok первый раз, она возвращает указатель на первый символ в string1. При последующих вызовах в этой же самой строке символов, strtok возвращает указатель на следующий символ в строке.

НА КАКОЙ СИМВОЛ ТА?? просто на следующий символ в строке? или тот что ищется?
3.
61K
30 декабря 2010 года
TauRN7
24 / / 30.12.2010
Мне нравитсяМне не нравится
10 января 2011, 23:46:59
ну и написано же так тяжело!!
4.
47K
05 июня 2009 года
realdip
4 / / 05.06.2009
Мне нравитсяМне не нравится
9 октября 2009, 03:36:21
тут мелких опечаток штук 5 я насчитал, вот существенная
string1 как множество нуль или
более знаков, служащих в качестве ограничителей для символов в
string1
что она сама в себе ограничители ищет?
5.
Аноним
+1 / -0
Мне нравитсяМне не нравится
20 апреля 2006, 14:45:47
Да Вы обалдели! Допустить очипятку в объявлении функции!

char *strtor(string1,string2);

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог