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

Ваш аккаунт

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

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

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

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

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

bsearch

[ Оглавление ]
               BSEARCH
            
            #include <search.h>    требуется только для объявления
                                   функции
            
            char *bsearch(key,base,num,width,compare);
            char *key;             ключ поиска
            char *base;            указатель  на  поисковую   базу
                                   данных
            unsigned num,width;    число и размер элементов
            int (*compare)();      указатель на функцию  сравнения
            
               Описание.
            
               Функция bsearch производит двоичный поиск в отсортированном
         массиве из num элементов, размер  каждого  элемента  равен  width
         байт.  Base  -  указатель на начало массива, key - значение ключа
         поиска.
               Аргумент compare является указателем на процедуру,  постав-
         ляемую  пользователем,  которая сравнивает два элемента массива и
         возвращает значение, определяющее их отношение. В течении  поиска
         функция  bsearch  может  вызывать процедуру compare один или нес-
         колько раз, передавая в каждом вызове указатели на  два  элемента
         массива. Процедура должна сравнивать элементы, а затем возвращать
         одно из следующих значений.
                
         
              ЗНАЧЕНИЕ            СМЫСЛ ЗНАЧЕНИЯ
            
            меньше 0         element1 меньше, чем element2
                             
               0             element1 равен element2
                             
            больше 0         element1 больше, чем element2
                
            
               Возвращаемое значение.
            
               Функция  bsearch  возвращает  указатель на первое вхождение
         ключа key в массив, на который указывает base.
               Если key не найден, функция возвращает NULL.
               См. также lfind, lsearch, gsort.
            
               Пример:
            
               /* Функция bsearch производит двоичный поиск  в  отсортиро-
         ванном  массиве  для  элемента  "key"  и  возвращает указатель на
         структуру, в которой находится ключ 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) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог