鍍金池/ 教程/ C/ bsearch() - C語言庫函數(shù)
qsort() - C語言庫函數(shù)
strxfrm() - C語言庫函數(shù)
difftime() - C語言庫函數(shù)
isdigit() - C函數(shù)
<limits.h> - C語言標(biāo)準(zhǔn)庫
ldiv() - C語言庫函數(shù)
printf() - C語言庫函數(shù)
sin() - C函數(shù)
freopen() - C語言庫函數(shù)
NULL - C函數(shù)
mktime() - C語言庫函數(shù)
floor() - C函數(shù)
log() - C函數(shù)
rewind() - C語言庫函數(shù)
memcpy() - C語言庫函數(shù)
remove() - C語言庫函數(shù)
localtime() - C語言庫函數(shù)
strcoll() - C語言庫函數(shù)
fgets() - C語言庫函數(shù)
errno - C語言宏
<stdlib.h> - C語言標(biāo)準(zhǔn)庫
labs() - C語言庫函數(shù)
putchar() - C語言庫函數(shù)
wcstombs() - C語言庫函數(shù)
fclose() - C庫函數(shù)
system() - C語言庫函數(shù)
strncmp() - C語言庫函數(shù)
va_end() - C函數(shù)
setlocale() - C函數(shù)
strpbrk() - C語言庫函數(shù)
acos() - C函數(shù)
fabs() - C函數(shù)
asctime() - C語言庫函數(shù)
offsetof() - C函數(shù)
cos() - C函數(shù)
atoi() - C語言庫函數(shù)
strftime() - C語言庫函數(shù)
va_arg() - C函數(shù)
strstr() - C語言庫函數(shù)
<errno.h> - C語言標(biāo)準(zhǔn)庫
memchr() - C語言庫函數(shù)
fopen() - C語言庫函數(shù)
va_start() - C函數(shù)
fprintf() - C語言庫函數(shù)
strrchr() - C語言庫函數(shù)
<time.h> - C語言標(biāo)準(zhǔn)庫
C語言標(biāo)準(zhǔn)庫
isgraph() - C函數(shù)
srand() - C語言庫函數(shù)
isprint() - C函數(shù)
fputs() - C語言庫函數(shù)
sscanf() - C語言庫函數(shù)
getc() - C語言庫函數(shù)
<stdarg.h> - C語言標(biāo)準(zhǔn)庫
rename() - C語言庫函數(shù)
rand() - C語言庫函數(shù)
strspn() - C語言庫函數(shù)
frexp() - C函數(shù)
bsearch() - C語言庫函數(shù)
islower() - C函數(shù)
fwrite() - C語言庫函數(shù)
ispunct() - C函數(shù)
vsprintf() - C語言庫函數(shù)
strcspn() - C語言庫函數(shù)
fgetpos() - C庫函數(shù)
getchar() - C語言庫函數(shù)
tmpfile() - C語言庫函數(shù)
mbtowc() - C語言庫函數(shù)
sprintf() - C語言庫函數(shù)
ftell() - C語言庫函數(shù)
feof() - C庫函數(shù)
mblen() - C語言庫函數(shù)
clearerr() - C庫函數(shù)
modf() - C函數(shù)
strncat() - C語言庫函數(shù)
isspace() - C函數(shù)
ctime() - C語言庫函數(shù)
tmpnam() - C語言庫函數(shù)
isupper() - C函數(shù)
atol() - C語言庫函數(shù)
gets() - C語言庫函數(shù)
<setjmp.h> - C語言標(biāo)準(zhǔn)庫
perror() - C語言庫函數(shù)
exit() - C語言庫函數(shù)
memmove() - C語言庫函數(shù)
isalpha() - C函數(shù)
fsetpos() - C語言庫函數(shù)
fmod() - C函數(shù)
<float.h> - C語言標(biāo)準(zhǔn)庫
strtok() - C語言庫函數(shù)
wctomb() - C語言庫函數(shù)
strcat() - C語言庫函數(shù)
atof() - C語言庫函數(shù)
strchr() - C語言庫函數(shù)
<locale.h> - C語言標(biāo)準(zhǔn)庫
signal() - C函數(shù)
ungetc() - C語言庫函數(shù)
ferror() - C庫函數(shù)
C語言標(biāo)準(zhǔn)庫
strtoul() - C語言庫函數(shù)
fseek() - C語言庫函數(shù)
fscanf() - C語言庫函數(shù)
mbstowcs() - C語言庫函數(shù)
longjmp() - C函數(shù)
localeconv() - C函數(shù)
raise() - C函數(shù)
ceil() - C函數(shù)
<string.h> - C語言標(biāo)準(zhǔn)庫
free() - C語言庫函數(shù)
setvbuf() - C語言庫函數(shù)
atan() - C函數(shù)
C函數(shù)庫宏 assert()
<stdio.h> - C語言標(biāo)準(zhǔn)庫
fread() - C語言庫函數(shù)
vfprintf() - C語言庫函數(shù)
isxdigit() - C函數(shù)
toupper() - C函數(shù)
<ctype.h> - C語言標(biāo)準(zhǔn)庫
setjmp() - C函數(shù)
ldexp() - C函數(shù)
EDOM - C語言宏
strlen() - C語言庫函數(shù)
tolower() - C函數(shù)
clock() - C語言庫函數(shù)
fflush() - C庫函數(shù)
fgetc() - C語言庫函數(shù)
<stddef.h> - C語言標(biāo)準(zhǔn)庫
div() - C語言庫函數(shù)
<math.h> - C語言標(biāo)準(zhǔn)庫
isalnum() - C函數(shù)
memset() - C語言庫函數(shù)
calloc() - C語言庫函數(shù)
vprintf() - C語言庫函數(shù)
sqrt() - C函數(shù)
<assert.h> - C語言標(biāo)準(zhǔn)庫
time() C語言
atexit() - C語言庫函數(shù)
memcmp() - C語言庫函數(shù)
setbuf() - C語言庫函數(shù)
iscntrl() - C函數(shù)
abs() - C語言庫函數(shù)
abort() - C語言庫函數(shù)
exp() - C函數(shù)
realloc() - C語言庫函數(shù)
puts() - C語言庫函數(shù)
scanf() - C語言庫函數(shù)
malloc() - C語言庫函數(shù)
strerror() - C語言庫函數(shù)
strtol() - C語言庫函數(shù)
ERANGE - C語言宏
sinh() - C函數(shù)
atan2() - C函數(shù)
putc() - C語言庫函數(shù)
asin() - C函數(shù)
strcpy() - C語言庫函數(shù)
fputc() - C語言庫函數(shù)
getenv() - C語言庫函數(shù)
pow() - C函數(shù)
tanh() - C函數(shù)
gmtime() - C語言庫函數(shù)
strtod() - C語言庫函數(shù)
log10() - C函數(shù)
strcmp() - C語言庫函數(shù)
<signal.h> - C語言標(biāo)準(zhǔn)庫

bsearch() - C語言庫函數(shù)

C庫函數(shù) void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))  函數(shù)搜索一個(gè)數(shù)組的 nitems 對(duì)象,初始成員其中所指向的基礎(chǔ),相匹配的key指向的對(duì)象的成員。指定尺寸的陣列中的每個(gè)成員的大小。

該數(shù)組的內(nèi)容應(yīng)該是按升序排序的順序,根據(jù)通過比較參考的比較函數(shù)。

聲明

以下是 bsearch() 函數(shù)的聲明。

void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))

參數(shù)

  • key -- 這是作為搜索的關(guān)鍵對(duì)象的指針,鑄成一個(gè)void *類型。

  • base -- 這是在執(zhí)行搜索的數(shù)組的第一個(gè)對(duì)象的指針,鑄成一個(gè)void *類型。

  • nitems -- 這是由基部指向的數(shù)組中的元素?cái)?shù)目。

  • size -- 這是在數(shù)組中的每個(gè)元素的大?。ㄒ宰止?jié)為單位)。

  • compar -- 這個(gè)函數(shù)比較兩個(gè)元素。

返回值

這個(gè)函數(shù)返回一個(gè)指針數(shù)組中的一個(gè)條目匹配的搜索鍵。如果沒有找到鑰匙,返回一個(gè)NULL指針。

例子

下面的例子演示了如何使用 bsearch() 函數(shù)。

#include <stdio.h>
#include <stdlib.h>


int cmpfunc(const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}

int values[] = { 5, 20, 29, 32, 63 };

int main ()
{
   int *item;
   int key = 32;

   /* using bsearch() to find value 32 in the array */
   item = (int*) bsearch (&key, values, 5, sizeof (int), cmpfunc);
   if( item != NULL ) 
   {
      printf("Found item = %d
", *item);
   }
   else 
   {
      printf("Item = %d could not be found
", *item);
   }
   
   return(0);
}

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

Found item = 32