_lfind

Executa uma Pesquisar linear da chave especificada.Uma versão mais segura desta função está disponível; consulte _lfind_s.

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

Parâmetros

  • key
    Objeto para pesquisar.

  • base
    Ponteiro para a base de dados de Pesquisar.

  • num
    Número de elementos da matriz.

  • width
    Largura dos elementos da matriz.

  • compare
    Ponteiro para a rotina de comparação.O primeiro parâmetro é um ponteiro para a chave de Pesquisar.O segundo parâmetro é um ponteiro para o elemento de matriz a ser comparado com a tecla.

Valor de retorno

Se a chave for encontrado, _lfind Retorna um ponteiro para o elemento da matriz em base que corresponde ao key. Se a chave não for encontrado, _lfind Retorna NULL.

Comentários

The _lfind função realiza uma Pesquisar linear para o valor key em uma matriz de num elementos, cada um dos width bytes. Ao contrário de bsearch, _lfind não requer que o array a ser classificado. The base argumento é um ponteiro para a base da matriz a ser pesquisada. The compare argumento é um ponteiro para uma rotina fornecido pelo usuário que compara dois elementos de matriz e retorna um valor especificando suas relações. _lfind chamadas a compare rotina uma ou mais vezes durante a Pesquisar, passar ponteiros para dois elementos de matriz em cada telefonar. The compare rotina deve comparar os elementos e, em seguida, retornar diferente de zero (ou seja, os elementos são diferentes) ou 0 (ou seja, os elementos são idênticos).

Esta função valida os parâmetros.If compare, key ou num é NULL, ou se base é nulo e *num é diferente de zero, ou se width é menor que zero, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, errno é definido como EINVAL e a função retorna NULL.

Requisitos

Rotina

Cabeçalho necessário

_lfind

<Pesquisar.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// 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" );
}

Hello found

Equivalente do NET Framework

sistema::Collections::ArrayList:: contém

Consulte também

Referência

Pesquisa e classificação

_lfind_s

bSearch

_lsearch

qsort