Nombre de la función : lsearch
Archivo de encabezado : <stdlib.h>
Prototipo de función : void* lsearch(void* key,void* distrito,size_t *n,size_t m,
int (*func)(const void*,const void*));
Función : Se utiliza para realizar una búsqueda lineal de principio a fin dentro de un área determinada.
Parámetros : puntero clave void* a la palabra clave que se encontrará
El distrito void* apunta a la dirección inicial del área a buscar
size_t *n Encuentra el número de elementos de área
size_t m encuentra el tamaño de cada elemento en el rango
int (*func)(const void*,const void*) Un puntero a una función. Esta función se utiliza para comparar los tamaños de dos elementos.
Valor de retorno : si se encuentran datos clave en el área de búsqueda, se devuelve la dirección del elemento encontrado;
Si los datos buscados no están en el área de búsqueda, agréguelos al área de búsqueda y luego devuelva la dirección agregada;
Ejemplo de programa : use esta función para buscar linealmente el elemento 27 en la matriz a y agregar el nuevo elemento a la matriz
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){//Comparar el tamaño de dos números 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(resultado){printf(Number%disfoundn,key); }else{printf(Número%disnotfoundn,clave);}return0;}
Resultados de ejecución
Número 27 encontrado