bsearch | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <stdlib.h> void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le contenu de la table doit être triée en ordre croissant par rapport à la fonction de comparaison référencée par compar. La routine compar doit être capable de recevoir deux arguments, le premier pointant sur l'objet clé, et le second sur un élément de la table (l'ordre des arguments est toujours respecté par bsearch()). Cette routine doit retourner une valeur entière respectivement inférieure, égale, ou supérieure à zéro si l'objet clé est inférieur, égal, ou supérieur à l'élément de la table.
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
EXEMPLE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <stdio.h> #include <stdlib.h> #include <string.h> struct mi { int no; char *nom; } mois[] = { { 1, "jan" }, { 2, "fév" }, { 3, "mar" }, { 4, "avr" }, { 5, "mai" }, { 6, "jun" }, { 7, "jui" }, { 8, "aoû" }, { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "déc" } }; #define nb_de_mois (sizeof(mois)/sizeof(mois[0])) static int compmi(const void *m1, const void *m2) { struct mi *mi1 = (struct mi *) m1; struct mi *mi2 = (struct mi *) m2; return strcmp(mi1->nom, mi2->nom); } int main(int argc, char **argv) { int i; qsort(mois, nb_de_mois, sizeof(struct mi), compmi); for (i = 1; i < argc; i++) { struct mi key, *res; key.nom = argv[i]; res = bsearch(&key, mois, nb_de_mois, sizeof(struct mi), compmi); if (res == NULL) printf("'%s' : mois inconnu\n", argv[i]); else printf("%s : mois N°%d\n", res->nom, res->no); } exit(EXIT_SUCCESS); }
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 22 octobre 1996 et révisée le 29 décembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 bsearch ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |