Nom de la fonction : lsearch
Fichier d'en-tête : <stdlib.h>
Prototype de fonction : void* lsearch(void* key,void* district,size_t *n,size_t m,
int (*func)(const void*,const void*));
Fonction : Permet d'effectuer une recherche linéaire du début à la fin au sein d'une zone donnée
Paramètres : void* key pointeur vers le mot clé à trouver
Le district void* pointe vers l'adresse de départ de la zone à rechercher
size_t *n Trouver le nombre d'éléments de la zone
size_t m trouve la taille de chaque élément de la plage
int (*func)(const void*,const void*) Un pointeur vers une fonction Cette fonction est utilisée pour comparer les tailles de deux éléments.
Valeur de retour : Si des données clés sont trouvées dans la zone de recherche, l'adresse de l'élément trouvé est renvoyée ;
Si les données recherchées ne se trouvent pas dans la zone de recherche, ajoutez-les à la zone de recherche, puis renvoyez l'adresse ajoutée ;
Exemple de programme : utilisez cette fonction pour rechercher linéairement l'élément 27 dans le tableau a et ajouter le nouvel élément au tableau
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){//Comparez la taille de deux nombres 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(Nombre%disfoundn,key);}else{printf(Number%disnotfoundn,key);}return0;}
Résultats en cours d'exécution
Le numéro27 est trouvé