Latest web development tutorials

Funkcje biblioteczne C - bsearch ()

Biblioteka standardowa języka C - <stdlib.h> Biblioteka standardowa języka C - <stdlib.h>

opis

Funkcje biblioteki Cvoid * bsearch (const void * kluczem , const void * podstawa, size_t nitems, size_t size, int (* compar) (const void *, const void *)) od nitemstablicę obiektów, aby wykonaćwyszukiwanie binarne,punkt bazowy być Znajdźtablicę,kluczowy punkt, aby znaleźćelementy,rozmiar określa rozmiar każdego elementu w tablicy.

Zawartość tablicy powinna być oparta na odpowiedniejcompar Funkcja porównywania w porządku rosnącym.

oświadczenie

Oto () Funkcja stwierdzenie bsearch.

void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))

parametry

  • Klucz - wskaźnik, aby odnaleźć typ elementu do void *.
  • Podstawa - punkt przeprowadzenie tablicę wskaźników do znalezienia pierwszy typ obiektu do void *.
  • nitems - wskazywała na liczbę elementów bazowych w tablicy.
  • size - wielkość każdego elementu w tablicy w bajtach.
  • compar - funkcja stosowana do porównania dwóch elementów.

Wartość zwracana

Jeśli wyszukiwanie się powiedzie, funkcja zwraca wskaźnik do wskaźnika do tablicy dopasowanie elementów, w przeciwnym wypadku zwraca null pointer. ,

Przykłady

Poniższy przykład demonstruje bsearch function () jest używana.

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


int cmpfunc(const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}

int values[] = { 5, 20, 29, 32, 63 };

int main ()
{
   int *item;
   int key = 32;

   /* 使用 bsearch() 在数组中查找值 32 */
   item = (int*) bsearch (&key, values, 5, sizeof (int), cmpfunc);
   if( item != NULL ) 
   {
      printf("Found item = %d\n", *item);
   }
   else 
   {
      printf("Item = %d could not be found\n", *item);
   }
   
   return(0);
}

Załóżmy, skompilować i uruchomić powyższy program, który spowoduje w następujących przypadkach:

Found item = 32

Biblioteka standardowa języka C - <stdlib.h> Biblioteka standardowa języka C - <stdlib.h>