C-Bibliotheksfunktionen - bsearch ()
C Standard - Bibliothek - <stdlib.h>
Beschreibung
C - Bibliotheksfunktionenvoid * bsearch (const void * Schlüssel , const void * Basis, size_t nitems, size_t size, int (* compar) (const void *, const void *)) von nitemsArray von Objekten binäreSuche durchzuführen,um Basispunkt sein finden Sie einArray,Schlüsselpunkt , um dieElementezufinden,die Größe gibt die Größe jedes Elements in der Anordnung.
Inhalt des Arrays sollte auf der entsprechenden Vergleichsfunktioncompar aufsteigend basieren.
Erklärung
Hier ist () Anweisung bsearch Funktion.
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))
Parameter
- Schlüssel - Zeiger den Elementtyp zu finden , um void *.
- Basis - Punkt ein Array von Zeigern auszuführen * für ungültig zu erklären , die erste Objekttyp zu finden.
- nitems - wies auf die Anzahl der Basiselemente in der Anordnung.
- Größe - die Größe jedes Elements in dem Array in Byte.
- compar - Funktion verwendet , um zwei Elemente miteinander zu vergleichen.
Rückgabewert
Wenn die Suche erfolgreich ist, gibt die Funktion einen Zeiger auf einen Zeiger auf ein Array-Elemente der zusammenpassenden, ansonsten einen Null-Zeiger zurück. .
Beispiele
Das folgende Beispiel zeigt bsearch () Funktion verwendet wird.
#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); }
Lassen Sie uns zusammenzustellen und um das obige Programm ausführen, die in der folgenden führen:
Found item = 32