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

Ваш аккаунт

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

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

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

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

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

lfind - lsearch

[ Оглавление ]
               LFIND - LSEARCH
            
               #include <search.h>    требуется только для объявления
                                      функции
               char *lsearch(key,base,num,width,compare);
               char *lfind(key,base,num,width,compare);
               char *key;              ключ поиска
               char *base;             указатель  на  поисковую  базу
                                       данных
               unsigned *num,width;    число и размер элементов
               int (*compare)();       указатель на функцию сравнения
            
               Описание.

               Функции lsearch и lfind производят строковый поиск для зна-
         чения key в массиве из num элементов, каждый размером width байт.
         (В отличии от bsearch, lsearch и lfind не требуют отсортированно-
         го массива). Аргумент base является указателем на  базу  массива,
         который нужно найти.
               Если key не найден, lsearch присоединяет его в конец. Функ-
         ция lfind этого не делает.
               Аргумент  compare является указателем на процедуру, постав-
         ляемую пользователем, которая сравнивает два элемента  массива  и
         возвращает значение, определяющее их отношение. Обе функции вызы-
         вают  процедуру  compare в течении поиска один или несколько раз,
         пересылая в каждом вызове указатели на два элемента массива.  Эта
         процедура  должна сравнивать элементы, а затем возвращать одно из
         следующих значений:
            
            Значение                     Его смысл
            
            не равно 0           element 1 и element 2 различны
            
               0                 element 1 равен element 2
            
            
               Возвращаемое значение.
            
               Обе функции lsearch и lfind возвращают указатель на  первое
         возникновение key в массиве, на который указывает base.
               Если key не найден, эти функции возвращают NULL.
               См.также bsearch.
            
         
            
               Пример:
                
               /* функция lsearch производит строковый поиск в массиве для
         элемента "key"; lsearch возвращает указатель на структуру, если в
         ней содержится key, и NULL - если его нет. */
            
               #include <search.h>
               #include <string.h>
               #include <stdio.h>
               int compare();
               /* должна быть объявлена как функция */
               main (argc, argv)
               int argc;
               char **argv;
                {
               char **result;
               char *key = "PATH";
               /*  следующий  оператор  находит  аргумент,  начинающийся с
         "PATH", в предположении, что аргументы лексикографически отсорти-
         рованы */
               result = (char **)bsearch((char *)&key,
                        (char *)argv, argc, sizeof(char *),
                         compare);
               if (result)
                   printf ("%s found\n", *result);
               else
                   printf("PATH not found!\n");
                 }
               int compare (arg1, arg2)
               char **arg1, **arg2;
                {
                 return(strncmp(*arg1, *arg2, strlen(*arg1)));
                }.
            
            

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

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