/* Bin„res Suchen nach Text */
/* Datei: bsearch2.c */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef int (*vfuzeig)(const void*, const void*);
#define Anzahl(feld) (sizeof(feld) / sizeof(feld[0]))
char * tfeld[] = {"Meier","Mueller","Huber",
       "Herglotz","Gaertner"};

int tvergleich (const char **p1, const char **p2)
{
return(strcoll (*p1,*p2));
}
int bvergleich (const char *p1, const char **p2)
{
return(strcoll (p1,*p2));
}

int suchenacht(char * key)
{
int  *ezeig;
ezeig=(int*)bsearch(key,tfeld,Anzahl(tfeld),
      sizeof(tfeld[0]), (vfuzeig)bvergleich);
return (ezeig != NULL);
}

int main(void)
{
printf ("\x1b[2JBin„re Suche\n\n");
qsort (tfeld, Anzahl(tfeld),sizeof(tfeld[0]),
      (vfuzeig)tvergleich);
if (suchenacht("Herglotz"))
   printf("Herglotz gefunden.\n");
else
   printf("Herglotz nicht gefunden.\n");
return 0;
}
