Funkcje biblioteczne C - bsearch ()
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