다음을 통해 공유


_lfind

지정 된 키에 대 한 선형 검색을 수행합니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. see _lfind_s.

void *_lfind(
   const void *key,
   const void *base,
   unsigned int *num,
   unsigned int width,
   int (__cdecl *compare)(const void *, const void *)
);

매개 변수

  • key
    개체를 검색할 수 있습니다.

  • base
    데이터 검색의 기본에 대 한 포인터입니다.

  • num
    배열 요소 수입니다.

  • width
    배열 요소의 너비입니다.

  • compare
    비교 루틴에 대 한 포인터입니다.첫 번째 매개 변수는 검색에 대 한 키에 대 한 포인터입니다.두 번째 매개 변수는 키와 비교 하는 배열 요소에 대 한 포인터입니다.

반환 값

키가 있으면 _lfind 배열의 요소에 대 한 포인터를 반환 base 와 동일한 key.해당 키가 없는 경우 _lfind 반환 NULL.

설명

_lfind 함수 값에 대 한 선형 검색을 수행 key 배열에 있는 num 의 각 요소를 width 바이트입니다.달리 bsearch, _lfind 배열을 정렬 하려면 필요 하지 않습니다.base 인수에 대 한 포인터의 배열 검색할 수 있습니다.compare 인수는 배열 요소 두 개를 비교 하 여 다음 간의 관계를 지정 하는 값을 반환 하는 사용자 제공 루틴에 대 한 포인터입니다._lfind호출을 compare 일상적인 여러 번 각 호출에서 두 배열 요소에 포인터를 전달 하는 검색 하는 동안.compare 루틴 요소를 비교 하 고 있는 요소는 서로 다른 즉 0이 아닌 값을 반환 해야 또는 0 (요소를 동일한 수 없음).

이 함수의 매개 변수의 유효성을 검사 합니다.경우 compare, key 또는 num 입니다 NULL, 또는 base NULL입니다 및 *num 0이 아닙니다 경우 width 가 0 보다 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 수 있으면 errno 으로 설정 EINVAL 함수를 반환 하 고 NULL.

요구 사항

루틴

필수 헤더

_lfind

<search.h>

더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_lfind.c
// This program uses _lfind to search a string array
// for an occurrence of "hello".

#include <search.h>
#include <string.h>
#include <stdio.h>

int compare(const void *arg1, const void *arg2 )
{
   return( _stricmp( * (char**)arg1, * (char**)arg2 ) );
}

int main( )
{
   char *arr[] = {"Hi", "Hello", "Bye"};
   int n = sizeof(arr) / sizeof(char*);
   char **result;
   char *key = "hello";

   result = (char **)_lfind( &key, arr, 
                      &n, sizeof(char *), compare );

   if( result )
      printf( "%s found\n", *result );
   else
      printf( "hello not found!\n" );
}
  

해당 .NET Framework 항목

System::Collections::ArrayList:: 포함

참고 항목

참조

검색 및 정렬

_lfind_s

b 검색

_lsearch

qsort