기능명 : lsearch
헤더 파일 : <stdlib.h>
함수 프로토타입 : void* lsearch(void* key,void* District,size_t *n,size_t m,
int (*func)(const void*,const void*));
기능 : 주어진 영역 내에서 처음부터 끝까지 선형 검색을 수행하는 데 사용됩니다.
매개변수 : void* 찾을 키워드에 대한 키 포인터
void* District는 검색할 지역의 시작 주소를 가리킵니다.
size_t *n 영역 요소의 개수를 찾습니다.
size_t m은 범위에 있는 각 요소의 크기를 찾습니다.
int (*func)(const void*,const void*) 함수에 대한 포인터입니다. 이 함수는 두 요소의 크기를 비교하는 데 사용됩니다.
반환 값 : 검색 영역에서 키 데이터가 발견되면 발견된 요소의 주소를 반환하고, 해당 항목의 주소를 반환한다.
검색된 데이터가 검색 영역에 없으면 검색 영역에 추가한 후 추가된 주소를 반환합니다.
프로그램 예 : 이 함수를 사용하여 배열 a에서 요소 27을 선형적으로 검색하고 새 요소를 배열에 추가합니다.
#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=27;fcf=compare;int*result=(int*)lsearch(&key,arr,&n,sizeof( int),f);if(결과){printf(숫자%disfoundn,key);}else{printf(숫자%disnotfoundn,key);}return0;}
실행 결과
27번을 찾았습니다