Nome da função : lsearch
Arquivo de cabeçalho : <stdlib.h>
Protótipo de função : void* lsearch(void* key,void* distrito,size_t *n,size_t m,
int (*func)(const void*,const void*));
Função : Usada para realizar uma pesquisa linear do início ao fim dentro de uma determinada área
Parâmetros : void* ponteiro-chave para a palavra-chave a ser encontrada
void* distrito aponta para o endereço inicial da área a ser pesquisada
size_t *n Encontre o número de elementos da área
size_t m encontra o tamanho de cada elemento no intervalo
int (*func)(const void*,const void*) Um ponteiro para uma função é usada para comparar os tamanhos de dois elementos.
Valor de retorno : Se os dados principais forem encontrados na área de pesquisa, o endereço do elemento encontrado será retornado;
Se os dados pesquisados não estiverem na área de pesquisa, adicione-os à área de pesquisa e retorne o endereço adicionado;
Exemplo de programa : Use esta função para pesquisar linearmente o elemento 27 na matriz a e adicionar o novo elemento à matriz
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){//Compare o tamanho de dois 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,chave);}return0;}
Resultados em execução
Número 27 foi encontrado