Latest web development tutorials

fonctions de la bibliothèque C - bsearch ()

C bibliothèque standard - <stdlib.h> C bibliothèque standard - <stdlib.h>

description

fonctions de la bibliothèque Cvoid * bsearch (void const touche * , const void * Base, nitems size_t, size_t size, int (* compar) (const void *, const void *)) de nitemstableau d'objets pour effectuer unerecherche binaire,point de base pour être trouver untableau,point clé pour trouver leséléments,la taille spécifie la taille de chaque élément dans le tableau.

Contenu du tableau doivent être basées sur lacompar fonction de comparaison correspondante dans l' ordre croissant.

déclaration

Voici () fonction instruction bsearch.

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

Paramètres

  • clé - pointeur pour trouver le type d'élément pour annuler *.
  • debase - le point d'effectuer un tableau de pointeurs pour trouver le premier type d'objet pour annuler *.
  • nitems - mis en évidence le nombre d'éléments de base de la matrice.
  • Taille - la taille de chaque élément dans la matrice, en octets.
  • compar - fonction utilisée pour comparer deux éléments.

Valeur de retour

Si la recherche est fructueuse, la fonction renvoie un pointeur vers un pointeur sur un ensemble d'éléments correspondant, sinon elle renvoie un pointeur NULL. .

Exemples

L'exemple suivant illustre la fonction bsearch () est utilisée.

#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);
}

Nous allons compiler et exécuter le programme ci-dessus, qui se traduira par ce qui suit:

Found item = 32

C bibliothèque standard - <stdlib.h> C bibliothèque standard - <stdlib.h>