之前查看qsort函数的时候无意间看到了一个C语言内置的查找函数bsearch.

#include

void *bsearch( const void *key, const void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );

功能:函数用折半查找法在从数组元素buf[0]到buf[num-1] 匹配参数key。如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。数组buf 中的元素应以升序排列。函数bsearch()的返回值是指向匹配项,如果没有发现匹配项,返回NULL。

下面是我的测试代码:

#include

#include

#include

int compare(const void *value1, const void *value2);

int main(int argc, char const *argv[])

{

int size = 0;

scanf("%d", &size);

assert(size > 0);

int *array = (int *)calloc(size, sizeof(int));

int i = 0;

for (i = 0; i < size; ++i) {

scanf("%d", &array[i]);

}

//由于二分查找需要在查找数组有序的情况下才能正确的工作,

//所以这里先调用qsort函数进行排序

qsort(array, size, sizeof(int), compare);

int key = 0;

printf("input the key:");

scanf("%d", &key);

int *pointer = (int *) bsearch(&key, array, size, sizeof(int), compare);

if (pointer != NULL) {

printf("find the key: %d\n", *pointer);

// printf("pointer: %d\n", pointer);

} else {

printf("cannot find the key: %d\n", key);

}

free(array);

return 0;

}

int compare(const void *value1, const void *value2)

{

return *(int *)value1 - *(int *)value2;

}

C语言search函数的作用,C语言中库函数自带的查找函数bsearch相关推荐

  1. c语言中各种函数的作用,C语言常用函数用法大全

    C语言是当中广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率高的计算机语言,既能完成上层应用开发,也能完成底层硬件驱 ...

  2. c语言inline不起作用,C语言inline内联函数学习小结

    //inline(内联)函数:将普通的函数定义为inline函数,可以避免普通函数入栈出栈的开销,它是将函数内的代码直接粘贴到调用处.除此之外,它和普通函数无异. //要成为inline函数必须具备以 ...

  3. C语言中perm函数的作用,C语言中有关处理系统时间的知识

    <C语言中有关处理系统时间的知识>由会员分享,可在线阅读,更多相关<C语言中有关处理系统时间的知识(9页珍藏版)>请在人人文库网上搜索. 1.C语言中有关处理系统时间的知识C语 ...

  4. c语言中min函数的作用,C语言库函数

    C语言库函数是把自定义函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供程序员使用.程序员用的时候把它所在的文件名用#include<>加到里面就可以了(尖括号内填写文件名),例 ...

  5. python map函数的作用_python语言基础之map函数,urlib.request,多线程

    1.map函数 map 是 Python 自带的内置函数,它的作用是把一个函数应用在一个(或多个)序列上,把列表中的每一项作为函数输入进行计算,再把计算的结果以列表的形式返回. map 的第一个参数是 ...

  6. sleep函数的作用c语言,C语言中的sleep函数是什么意思【详细介绍】

    计算机知识:C语言中的Slee函数 Sleep函数简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned milliseconds); 在V ...

  7. c语言程序头文件作用,C语言头文件

    C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...

  8. c语言的应用与作用,C语言主要应用在什么地方?

    C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.因此,它的应用范围 ...

  9. C语言结构标记的作用,C语言基础知识之词法符号

    任何高级语言都有自定义的词法符号和支持的数据类型. 词法符号是语言的基本组成单位,数据类型是数据的基本属性.这里我将先对C语言的C法符号做一个小的总结,既是对我自己C语言的一个系统的整理与提高,也希望 ...

  10. c语言eof不起作用,c语言程序设计 怎么以输入EOF结束

    EOF(EndOfFile)是C语言中的文件结束标志符.当C语言输入函数获取到文件结尾标志时,会通过返回值的方式体现该值.所以要以输入EOF为结束,就需要判断输入函数的返回值.EOF定义在stdio. ...

最新文章

  1. 谈asp.net解决方案的项目生成时的输出路径
  2. 【POJ】1505 Copying Books
  3. Intel 公开安全新特性:CET
  4. 云炬随笔20210819
  5. 创建vue项目(二)引入elementUi、axios、准备静态资源、封装组件(.vue,js代码等)
  6. 基于GitHub创建自己的个人网站
  7. 最大流与最小割Maximum Flow and Minimum Cut
  8. 如何删除PPT中自带的切换动画?
  9. mantis修改mysql端口_mantis配置邮件服务-465端口
  10. 日式卡通渲染的效果的unity实现
  11. IOS 获取农历节日 节气
  12. html课堂考勤系统源码,考勤管理系统课程设计源码
  13. python中的date的含义_浅谈python中的dateime
  14. 《水经注地图服务》下载与安装步骤
  15. 为什么你要拒绝我(苹果AppStore被拒理由大全)
  16. 夏天晚上睡觉点蚊香对身体有害?+几招防蚊、驱蚊办法
  17. K2数据库database
  18. 模拟开关CD4051使用的4个要点
  19. mailbox unavailable
  20. Python打印杨辉三角-生成器语法yield的理解

热门文章

  1. Lesson 63-64 Who has the most stressful job?
  2. Yar 搭建 RPC 服务
  3. jcp jsr_Oracle提交了第三次JCP改革JSR,以提高透明度
  4. 世界的是非对错,永远都是强者说的算!
  5. 什么是Microsoft 365?
  6. 使用USBCAN通讯(转载)
  7. Arduino流水灯 附电路图
  8. 电子设计教程48:流水灯电路-完整电路设计
  9. 数学模型预测模型_改进著名的nfl预测模型
  10. 理解SaaS、PaaS、LaaS以及之间的区别