#include <stdlib.h>
#include <stdio.h>
#include <string.h>
// void* bsearch( const void *key, const void *ptr, size_t count, size_t size,
// int (*comp)(const void*, const void*) );
typedef struct DB {
int code;
char language[16];
} DB;
DB data[] = { {1, "C"}, {2, "C++"}, {3, "Java"}, {4, "Python"}, {5, "C#"} };
int compare(const void* s1, const void* s2) {
return strcmp(s1, ((const DB*)s2)->language);
}
int main(void)
{
char str[] = "Python";
DB const* result = bsearch(str, data, sizeof data / sizeof data[0], sizeof data[0], compare);
if (result) {
printf("found: %d: %s\n", result->code, result->language);
}
else {
printf("not found\n");
}
}
/*
run:
found: 3: Java
*/