Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       bsearch - binare Suche in einem sortierten Feld (Array)

"UBERSICHT

       #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
       Ubereinstimmung mit dem Objekt, auf das key zeigt. base zeigt  auf  das
       erste  Objekt  des  Felds;  size  legt  die GroBe der einzelnen im Feld
       enthaltenen Objekte fest.

       Der  Inhalt  des  Felds  sollte  gemaB  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 Ruckgabewert sollte ein
       Integer kleiner, gleich oder groBer  Null  sein,  je  nachdem,  ob  das
       key-Objekt kleiner, gleich oder groBer als das Element des Felds ist.

R"UCKGABEWERT

       Die  Funktion bsearch() gibt einen Zeiger auf ein passendes Feldelement
       zuruck oder NULL, wenn keine Ubereinstimmung gefunden  wurde.  Gibt  es
       mehrere  Treffer  fur 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 gewunschten 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(struct mi))

       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

       Diese   Seite   ist   Teil   der  Veroffentlichung  3.32  des  Projekts
       Linux-man-pages. Eine Beschreibung des Projekts und Informationen,  wie
       Fehler     gemeldet     werden     konnen,     finden     sich    unter
       http://www.kernel.org/doc/man-pages/.

"UBERSETZUNG

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

       Diese Ubersetzung ist Freie Dokumentation; lesen Sie  die  GNU  General
       Public   License   Version   3  oder  neuer  bezuglich  der  Copyright-
       Bedingungen. Es wird KEINE HAFTUNG ubernommen.

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

                               1. November 2003                     BSEARCH(3)