Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       bsearch - binäre Suche in einem sortierten Feld (Array)

ÜBERSICHT

       #include <stdlib.h>

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

BESCHREIBUNG

       Die Funktion bsearch() durchsucht ein Feld von nmemb Objekten nach Übereinstimmung mit dem
       Objekt, auf das key zeigt. base zeigt auf das erste Objekt des Felds; size legt die  Größe
       der einzelnen im Feld enthaltenen Objekte fest.

       Der Inhalt des Felds sollte gemäß der Vergleichsfunktion compar aufsteigend sortiert sein.
       Von compar wird erwartet, dass sie zwei Argumente verarbeitet. Das erste Argument verweist
       auf  das  key-Objekt;  das  zweite auf ein Element des Arrays. Der Rückgabewert sollte ein
       Integer kleiner, gleich oder größer Null sein, je  nachdem,  ob  das  key-Objekt  kleiner,
       gleich oder größer als das Element des Felds ist.

RÜCKGABEWERT

       Die  Funktion  bsearch() gibt einen Zeiger auf ein passendes Feldelement zurück oder NULL,
       wenn keine Übereinstimmung gefunden wurde. Gibt es mehrere  Treffer  für  key,  ist  nicht
       definiert, auf welches Element der Zeiger weist.

KONFORM ZU

       SVr4, 4.3BSD, POSIX.1-2001, C89, C99.

BEISPIEL

       Das  folgende  Beispiel sortiert zuerst mittels qsort(3) ein Feld von Strukturen und sucht
       dann mit bsearch() nach dem gewünschten Element.

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       struct mi {
           int Index;
           char *Name;
       } Monate[] = {
           { 1, "Jan" }, { 2, "Feb" }, { 3, "Mar" }, { 4, "Apr" },
           { 5, "Mai" }, { 6, "Jun" }, { 7, "Jul" }, { 8, "Aug" },
           { 9, "Sep" }, {10, "Okt" }, {11, "Nov" }, {12, "Dez" }
       };

       #define Anz_von_Monaten (sizeof(Monate)/sizeof(Monate[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->Name, mi2->Name);
       }

       int
       main(int argc, char **argv)
       {
           int i;

           qsort(Monate, Anz_von_Monaten, sizeof(struct mi), compmi);
           for (i = 1; i < argc; i++) {
               struct mi Schluessel, *res;
               Schluessel.Name = argv[i];
               res = bsearch(&Schluessel, Monate, Anz_von_Monaten,
                             sizeof(struct mi), compmi);
               if (res == NULL)
                   printf("'%s': unbekannter Monat\n", argv[i]);
               else
                   printf("%s: Monat #%d\n", res->Name, res->Index);
           }
           exit(EXIT_SUCCESS);
       }

SIEHE AUCH

       hsearch(3), lsearch(3), qsort(3), tsearch(3)

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Jens Rohler  <jkcr@rohler.de>  und
       Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.

                                         1. November 2003                              BSEARCH(3)