C_C++/C_라이브러리_함수

(C언어) lfind: 선형검색(linear search)를 수행한다

고니자니 2023. 2. 16. 11:25
반응형
#include <stdlib.h>
void *lfind(const void *key, const void *base, size_t *num,
    size_t width, int (*fcmp)(const void *, const void *));

lfind 함수는 연속된 레코드의 배열(array)에서 key로 지정된 인수값의 선형 검색을 수행합니다.

이 함수는 사용자 정의 비교 함수(fcmp)를 사용합니다.

배열은 메모리 위치가 base 에서부터 시작되고, width 바이트 만큼의 넓이를 가진 *num 개의 레코드를 갖습니다.

 

lfind 함수는 검색키와 일치하는 첫 번째 값의 주소를 반환합니다. 만약 일치하는 값을 찾지 못하면 NULL을 반환합니다.

 

참고: bsearch, qsort, lsearch

 

#include <stdio.h>
#include <stdlib.h>

int compare(int* x, int* y)
{
	return (*x - *y);
}

int main()
{
	int arr[5] = { 55, 44, 33, 99, 11 };
	int key = 99;
	int size = 5;
	int* result;

	result = (int *)_lfind(&key, arr, &size, sizeof(int),
		(int(*)(const void*, const*, const void*))compare);
	
	if(result)
		printf("%d: 찾았습니다.\n", key);
	else
		printf("%d: 찾지못 했습니다.\n", key);

	return 0;
}

lfind 함수: 선형검색(linear search)

반응형