Latest web development tutorials

C-Bibliotheksfunktionen - bsearch ()

C Standard-Bibliothek - <stdlib.h> 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

C Standard-Bibliothek - <stdlib.h> C Standard - Bibliothek - <stdlib.h>