#include <stdlib.h> void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compare)(const void *, const void *));
key - The element that is searched for
base - pointer to the first element of the array to be searched
nitems - number of elements in the array
size - size of a single element
compare - comparison function to compare two elements together.
pointer to an entry in the array that matches the search key.
If key not found, NULL pointer returned.
#include <stdio.h> /* including standard library */ //#include <windows.h> /* uncomment this for Windows */ #include <stdlib.h> #include <string.h> int main ( void ) { char my_key[10] = "bsearch"; int my_elementCount = 4; int my_size = 20; char my_strings[][30] = {"c", "example", "bsearch", "coderefer" , "someusefulinformation"}; /* strcmp is the compare function for this bsearch */ char *return_value = (char*) bsearch(my_key, my_strings, my_elementCount, my_size, (int(*)(const void*, const void*))strcmp); if (return_value) { printf("Found \"%s\" in the my_strings array.\n", return_value); } else { printf("Did not found \"%s\" in the my_strings array.\n", my_key); } return 0; }
user@host:~$ ./bsearch Found "bsearch" in the my_strings array