함수명 : lfind
헤더 파일 : <stdlib.h>
함수 프로토타입 : void* lfind(void* key,void* District,int *n,int m,
int (*func)(const void*,const void*));
기능 : 주어진 영역 내에서 처음부터 끝까지 선형 검색을 수행하는 데 사용됩니다.
매개변수 : void* 찾을 키워드에 대한 키 포인터
void* District 찾을 구역에 대한 포인터
int *n 검색 후 결과 버퍼
int m 찾을 영역의 너비
int (*func)(const void*,const void*) 함수에 대한 포인터입니다. 이 함수는 두 요소의 크기를 비교하는 데 사용됩니다.
반환 값: 키 데이터가 발견되면 발견된 요소의 주소를 반환하고, 그렇지 않으면 NULL을 반환합니다.
프로그램 예: 이 함수를 사용하여 배열 a에서 요소 68을 선형적으로 검색하고 프롬프트를 출력합니다.
#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=29;fcf=비교;int*result=(int*)lfind(&key,arr,&n,sizeof(int),f);if(result){printf(Number%disfoundn,key); }else{printf(숫자%disnotfoundn,key);}return0;}
실행 결과
29번을 찾았습니다