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