English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base C

Contrôle de flux C

Fonctions en C

Tableaux en C

Pointeurs en C

Chaînes de caractères en C

Structure C

Fichier C

Autres C

Manuel de référence C

Utilisation et exemple de la fonction bsearch() de la bibliothèque C

Bibliothèque standard en C - <stdlib.h>

Fonction de bibliothèque C void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)) Pour nitems L'array d'objets effectue une recherche binairebase Pointeur vers le tableau où la recherche est effectuéekey Pointeur vers l'élément à cherchersize Spécifier la taille de chaque élément du tableau.

Le contenu du tableau doit être compar La fonction de comparaison correspondante trie en ordre croissant.

Déclaration

Voici la déclaration de la fonction bsearch().

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

Paramètres

  • key -- Pointeur vers l'élément à chercher, converti en type void*.
  • base -- Pointeur vers le premier objet du tableau où la recherche est effectuée, converti en type void*.
  • nitems -- Nombre d'éléments dans le tableau pointé par base.
  • size -- Taille de chaque élément dans le tableau, en octets.
  • compar -- Fonction utilisée pour comparer deux éléments.

Valeur de retour

Si la recherche est réussie, la fonction renvoie un pointeur vers l'élément correspondant dans le tableau, sinon elle renvoie un pointeur nul.

Exemple en ligne

L'exemple suivant montre l'utilisation de la fonction bsearch().

#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;
   /* Utiliser bsearch() pour chercher une valeur dans un tableau 32 */
   item = (int*); bsearch (&key, values, 5, sizeof (int), cmpfunc);
   si( item != NULL ) 
   {
      printf("Trouvé item = %d\n", *item);
   }
   sinon 
   {
      printf("Article = %d n'a pas pu être trouvé\n", *item);
   }
   return(0);
}

Compilons et exécutons le programme suivant, ce qui produira le résultat suivant :

Article trouvé = 32

Bibliothèque standard en C - <stdlib.h>