C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 lsearch / l / Библиотечн. функции Borland C++

Функция Выполняет линейный поиск.


Синтаксис          #include<stdlib.h>
                   void *lsearch(const void *key, void *base,
                         size_t num, size_t width,
                         int(*fcmp)(const void *, const void *));

Файл, содержащий   stdlib.h
прототип

Описание           lsearch производит  просмотр  таблицы.  Т.к.   это
                   линейный поиск, то элементы таблицы не должны быть
                   отсортированы, перед вызовом функции lsearch. Если
                   элемент,  на  который  указывает key,  не найден в
                   таблице, то lsearch добавляет его к ней.

                   base - это  указатель  на  базу  (0-ой  элемент)
                          таблицы.

                   num - указывает на  целое  значение,  определяющее
                         число элементов в таблице.

                   key - указывает на искомый элемент.

                   wight- содержит размер элемента таблицы в байтах.

                   Аргумент fcmp  указывает  на  программу  сравнения
                   написанную пользователем.  Она  должна  сравнивать
                   два элемента и возвращать результат сравнения.

                   При просмотре  таблицы  lsearch вызывает программу
                   сравнения, на которую указывает аргумент fcmp.

                   При каждом  вызове  программы  сравнения   lsearch
                   посылает  ей  два  ппараметра:  key - указатель на
                   искомый элемент,  и elem - указатель на элемент  в
                   таблице.

                   fcmp может  интерпретировать  полученные параметры
                   любым путем.

Возвращаемое       lsearch возвращает адрес первого элемента в табли-
значение           це, совпадающего с искомым.

                   Если key совпадает с elem, то fcmp возвращает 0, в
                   противном   случае   fcmp   возвращает   ненулевое
                   значение.

Переносимость      lsearch доступна в системах UNIX.

Смотрите также     bsearch, lfind.

Пример:

#include<stdlib.h>
#include<stdio.h>
#include<string.h>

/* инициализировать число цветов */
char *color[10] = {"Red","Blue","Green"};
int ncolors = 3;

int colorscmp(char **arg1, char **arg2)
{
  return(strcmp(*arg1,*arg2));
}

int addelem(char *color)
{
  int oldn = ncolors;
  lsearch(&color, colors, (size_t*)&colors,
                 sizeof(char*), colorscmp);
  return(ncolors = oldn);
}

int main(void)
{
  int i;
  char *key = "Purple";

  if(addelem(key))
    printf("%s уже в таблице", key);
else
    printf("%s добавлен в таблицу цветов ",
            "теперь в ней %d цветов",key,ncolors);
printf("Цвета:");
for(i=0; i<ncolors; i++)
    printf("%s\n",colors[i]);
}




Дебетовая карта Home Credit [CPS] RU