使用qsort()和bsearch()函数对值和字符串进行排序和查找
2019独角兽企业重金招聘Python工程师标准>>>
#include <stdio.h>
#include <stdlib.h>
#define MAX 20int intcmp(const void *v1, const void *v2);int main(void){int arr[MAX], count, key, *ptr;//提示用户输入一些整数 printf("Enter %d integer values; press Enter each.\n", MAX);for(count = 0; count < MAX; count++){scanf("%d", &arr[count]);}puts("Press Enter to sort the values.");getc(stdin);//将数组中的元素按升序排列qsort(arr, MAX, sizeof(arr[0]), intcmp);//显示已排列的数组元素for(count = 0; count < MAX; count++){printf("\narr[%d] = %d.", count, arr[count]);}puts("\nPress Enter to continue.");getc(stdin);//输入要查找的值printf("Enter a value to search for: ");scanf("%d", &key);//执行查找ptr = (int *)bsearch(&key, arr, MAX, sizeof(arr[0]), intcmp);if(ptr != NULL){printf("%d found at arr[%d].", key, (ptr - arr));} else {printf("%d not found.", key);}return 0;
}int intcmp(const void *v1, const void *v2){return (*(int *)v1 - *(int *)v2);
}/*用qsort()和bsearch()对字符串进行排序和查找*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20int comp(const void *s1, const void *s2);int main(void){char *data[MAX], buf[80], *ptr, *key, **key1;int count;//输入单词或短语printf("Enter %d words or phrases, pressing Enter after each.\n", MAX);for(count = 0; count < MAX; count++){printf("Word %d: ", count + 1);gets(buf);data[count] = malloc(strlen(buf)+1);strcpy(data[count], buf);} //排列字符串(实际上是排列指针)qsort(data, MAX, sizeof(data[0]), comp);//显示已排列的字符串for(count = 0; count < MAX; count++){printf("\n%d: %s", count + 1, data[count]);}//提示用户输入待查找的单词printf("\n\nEnter a search key: ");gets(buf);// Perform the search. First, make key1 a pointer// to the pointer to the search key.key = buf;key1 = &key;ptr = bsearch(key1, data, MAX, sizeof(data[0]), comp);if(ptr != NULL){printf("%s found.\n", buf);} else {printf("%s not found.\n", buf);}return (0);
}
int comp(const void *s1, const void *s2){return (strcmp(*(char **)s1, *(char **)s2));
}
转载于:https://my.oschina.net/u/241930/blog/521930
使用qsort()和bsearch()函数对值和字符串进行排序和查找相关推荐
- c语言函数返回值可以是字符串吗,函数返回值可以是字符串吗
c语言中函数返回值可以是数组.字符串和结构体吗? 因为在C语言中函数不能返回数组,但字符串是存储在字符数组中的,所以能C语言中实现函数返回字符串,首先要确定函数返回的字符串地址的来源,一般分为四种方式 ...
- strlen函数_7.2 C++字符串处理函数
点击上方"C语言入门到精通",选择置顶 第一时间关注程序猿身边的故事 作者 闫小林 白天搬砖,晚上做梦.我有故事,你有酒么? C++字符串处理函数C语言和C++提供了一些字符串函数 ...
- 【转载】qsort 与 bsearch 的魔力
qsort函数声明如下: void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void ...
- 【C语言】qsort()函数详解
前言: 作者简介:爱吃大白菜1132 人生格言:纸上得来终觉浅,绝知此事要躬行 如果文章知识点有错误的地方不吝赐教,和大家一起学习,一起进步! 如果觉得博主文章还不错的话,希望三连支持! 目录 ...
- VS qsort和sort函数
qsort函数功 能: 使用快速排序例程进行排序 头文件:stdlib.h 函数原型: void __cdecl qsort (void *base,size_t num,size_t width ...
- C++ 笔记(15)— 引用(声明引用、引用作为参数、引用作为函数返回值、const 用于引用)
引用是变量的别名.也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 1. 创建引用 要声明引用,可使用引用运算符 & ,如下面的 ...
- C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)
先看以下代码 #include <iostream> #include <string> using namespace std;int main() // main() 是程 ...
- C指针7:指针作为函数返回值
C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> ...
- 使用指针做函数返回值
使用指针做函数返回值 1.当使用指针做为函数的返回值时,主函数处的char *p;将获得调用函数char *pf;的值,即一个地址值,如oxAE72.此时需要我们注意的是该地址值所指向的空间是否存在( ...
最新文章
- taro 引入js_Taro跨端开发之多业务模块管理 React Native篇(终篇)
- nosql介绍、memrcached介绍、安装memcached、查看memcachedq状态
- java flex xml_FLEX与JAVA的交互问题 -DOM4J-xml
- 微小宝公众号排行榜_排行榜 | 山西省高校、高职中专微信公众号周数据排行榜...
- MxNet 迁移学习实现深度学习分类
- 微软冷箭射苹果:世界需要更开放的平台
- 【每日一读】EMNLP2020: 面向多跳问答的分层图网络
- H3C BGP基本配置
- Mac系统必备强大软件合集
- 人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面
- html+css练手项目3
- 怎么提取pdf文件中的图片
- ADNI数据集下载方法(完全步骤)
- 查看详细Windows VISTA 或Windows 7激活状态
- 当上领导以后才明白的事情
- Python之win7环境下安装python3
- cURL 详解(附实例)
- 无线广播风暴问题定位分析(omnipeek工具)
- 2022RWCTF体验赛web的wp
- 全球时区(查询备用)
热门文章
- 关于C语言goto的使用
- “页面制作人员”?“页面工程师”?“页面架构师”?滚一边去!
- 微软推出 Power Platform 漏洞奖励计划
- 如何在ReactJS中使用FastReport Core Web Report
- 不懂得如何优化CNN图像分类模型?这有一份综合设计指南请供查阅
- 告别软驱,Win2K3光盘中集成Raid驱动程序
- 数据流图技术相关基础知识
- PHP关闭$_ENV后获取服务器参数的办法
- openwrt uci
- 8.exchange2013实战操作之RMS