Имя функции : lsearch
Заголовочный файл : <stdlib.h>
Прототип функции : void* lsearch(void* key,void* District,size_t *n,size_t m,
int (*func)(const void*,const void*));
Функция : используется для выполнения линейного поиска от начала до конца в заданной области.
Параметры : void* ключевой указатель на ключевое слово, которое нужно найти.
void* район указывает на начальный адрес области поиска
size_t *n Найти количество элементов области
size_t m находит размер каждого элемента в диапазоне
int (*func)(const void*,const void*) Указатель на функцию. Эта функция используется для сравнения размеров двух элементов.
Возвращаемое значение : Если в области поиска найдены ключевые данные, возвращается адрес найденного элемента;
Если искомые данные отсутствуют в области поиска, добавьте их в область поиска, а затем верните добавленный адрес;
Пример программы : используйте эту функцию для линейного поиска элемента 27 в массиве a и добавления нового элемента в массив.
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){//Сравнить размер двух чисел int*pi1= (int*)p1;int*pi2=(int*)p2;return(*pi1-*pi2);}intmain(void){intarr [5]={25,14,29,68,55};size_tn=5;intkey=27;fcf=compare;int*result=(int*)lsearch(&key,arr,&n,sizeof( int),f);if(result){printf(Number%disfoundn,key);}else{printf(Number%disnotfoundn,key);}return0;}
Результаты бега
Номер27найден