関数名:lsearch
ヘッダー ファイル: <stdlib.h>
関数プロトタイプ: void* lsearch(void* key,void* District,size_t *n,size_t m,
int (*func)(const void*,const void*));
機能: 指定されたエリア内で最初から最後まで線形探索を実行するために使用されます。
パラメータ: void* key 検索するキーワードへのポインタ
void* District は、検索対象の領域の開始アドレスを指します。
size_t *n エリア要素数を求める
size_t m は範囲内の各要素のサイズを見つけます。
int (*func)(const void*,const void*) この関数は、2 つの要素のサイズを比較するために使用されます。
戻り値: 検索領域でキーデータが見つかった場合は、見つかった要素のアドレスが返されます。
検索されたデータが検索領域にない場合は、検索領域に追加して、追加されたアドレスを返します。
プログラム例: この関数を使用して、配列 a の要素 27 を線形検索し、新しい要素を配列に追加します
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){//2 つの数値の大きさを比較します 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が見つかりました