Provided by:
manpages-de-dev_0.10-1_all 
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)