Udostępnij za pośrednictwem


_lfind

Wykonuje liniowej wyszukiwania dla określonego klucza.Bardziej bezpieczna wersja ta funkcja jest dostępna; see _lfind_s.

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

Parametry

  • key
    Obiekt do wyszukiwania.

  • base
    Wskaźnik do bazy danych wyszukiwania.

  • num
    Liczba elementów tablicy.

  • width
    Szerokość elementów tablicy.

  • compare
    Wskaźnik do rutynowych porównania.Pierwszy parametr jest wskaźnik do klucza w celu wyszukiwania.Drugi parametr jest wskaźnik do elementu tablicy, który należy porównać z kluczem.

Wartość zwracana

Jeśli klucz zostanie znaleziony, _lfind zwraca wskaźnik do elementu tablicy w base , które odpowiadają key.Jeśli klawisz nie zostanie znaleziony, _lfind zwraca NULL.

Uwagi

_lfind Funkcja wykonuje liniowej wyszukiwania dla wartości key w tablicy num elementów, każdy z width bajtów.W odróżnieniu od bsearch, _lfind nie wymaga tablicy, które mają być sortowane.base Argument jest wskaźnik do podstawy tablicy, które mają być przeszukiwane.compare Argument jest wskaźnik do rutynowych dostarczone przez użytkownika, który porównuje dwa elementy tablicy, a następnie zwraca wartość, określając ich relacji._lfindwywołania compare rutynowych jeden lub więcej razy podczas wyszukiwania, przekazując wskaźniki do dwóch elementów tablicy dla każdego wywołania.compare Rutynowych musi porównać elementy i zwracany jest różna od zera (to znaczy elementy są różne) lub 0 (to znaczy elementy są identyczne).

Funkcja ta sprawdza poprawność jego parametry.Jeśli compare, key lub num jest NULL, lub jeśli base ma wartość NULL i *num jest różna od zera, lub jeśli width jest mniejsza niż zero, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, errno jest ustawiona na EINVAL i funkcja zwraca NULL.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_lfind

<search.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Odpowiednik w programie .NET Framework

System::Collections::ArrayList:: zawiera

Zobacz też

Informacje

Wyszukiwanie i sortowanie danych

_lfind_s

bWyszukaj

_lsearch

quicksort