void *lfind(const void *key, const void *base, size_t *num, size_t size, int (*compare)(const *void, const *void))
void *lsearch(const void *key, void *base, size_t *num, size_t size, int (*compare)(const *void, const *void))
Эти функции не определены стандартом ANSI С.
Функции lfind() и lsearch() выполняют линейный поиск в массиве, на который указывает параметр base, и возвращают указатель на первый элемент, соответствующий ключу, на который указывает параметр key. Число элементов в массиве определяется переменной, на которую указывает параметр num, а параметр size содержит размер каждого элемента в байтах.
Параметр compare указывает на функцию, сравнивающую элемент массива с ключом. Эта функция имеет следующий формат:
int func_name(const void *arg1, const void *arg2)
Она должна возвращать следующие значения:
Если arg1 не равен arg2, то возвращается ненулевое значение.
Если arg1 равен arg2, то возвращается 0.
Массив, в котором осуществляется поиск, не обязательно должен быть отсортированным.
Если массив не содержит искомого элемента, то возвращается нулевой указатель.
Разница между функциями lfind() и lsearch() заключается в том, что функция lfind() выполняет только поиск. В противоположность этому, функция lsearch() добавляет элемент в конец массива, если он не содержался в этом массиве.