【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
模拟实现内存比较函数memcmp:
该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值。若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值。
区别在于:
strcmp只能比较字符串,memcmp是内存比较函数,原则上是比较内存的,但其实真正实现时并不是所有都可以比较,例如float,但我们至少可以比较字符串以及int型。
而对于strcmp,strncmp的比较:str1, str2 为需要比较的两个字符串,n为要比较的字符的数目,而函数strcmp()做不到,strcmp()可以比较全部字符串(因为它找字符串结束标志‘\0’)。
关于strcmp的实现,可以查看我的博客http://10740184.blog.51cto.com/10730184/1714512
关于strncmp的实现,可以查看我的博客http://10740184.blog.51cto.com/10730184/1715207
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>int my_memcmp(const void *p1, const void *p2, size_t count)
{assert(p1);assert(p2);char *dest = (char *)p1;char *src = (char *)p2;while (count && *dest == *src){count--;dest++;src++;}if (count == 0){return 0;} else{return *dest - *src - ‘\0’;}}int main()
{/*int arr1[] = { 1, 3, 20, 5 }; //比较整型int arr2[] = { 1, 3, 10, 7 };*/char arr1[] = "hello"; //比较字符串char arr2[] = "hello world";int len = sizeof(arr1) / sizeof(arr1[0]);int ret = my_memcmp(arr1, arr2, 12);printf("%d", ret);system("pause");return 0;
}
转载于:https://blog.51cto.com/10740184/1715695
【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别相关推荐
- 在线c语言考试模拟试题,C语言模拟考试试题选择题(模拟).doc
C语言模拟考试试题选择题(模拟) C语言模拟考试试题选择题(模拟)141. 已知ch是字符型变量,下面不合理的赋值语句是____. ch = '\023' ch = '\n' ch = 12.3 ch ...
- 2014c语言二级考试题,2014计算机二级等级考试试题:C语言模拟题
((1)-(10)每小题2分,(11)-(50)每题1分,共60分) 一 .下列各题A.B.C.D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)下列叙 ...
- 计算机二级c语言第82套,计算机等级考试二级C语言模拟试题十套答案
很好的模拟试题 计算机等级考试二级C语言模拟试题(1)答案: 选择题 1 -10 C D B D D C D C C D 11-20 C A B B C B B A C B 21 -30 D D B ...
- C语言模拟11答案,C语言模拟试题11答案.doc
C语言模拟试题11答案.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...
- 2014年计算机二级c语言试题,2014年计算机二级C语言模拟试题及答案(3)
2014年计算机二级C语言模拟试题及答案(3) 19.下列程序的输出结果是( ). int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(" ...
- c语言中输出1st,高等学校计算机等级考试C语言模拟试题1st-all.doc
高等学校计算机等级考试C语言模拟试题1st-all 上海市高等学校计算机等级考试C语言模拟试题 学院 _____________ 班级 __________ 姓名 __________ 学号 ____ ...
- 输出246810图形c语言,二级C语言模拟试题8套
二级C语言模拟试题8套 全国计算机等级考试二级C语言上机模拟试题汇编(8套)第1套[试题一]给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组 ...
- 达内C语言试题,(达内培训2013年计算机等考二级C语言模拟试题四及参考答案.doc...
(达内培训2013年计算机等考二级C语言模拟试题四及参考答案 [达内培训]2013年计算机等考二级C语言模拟试题四及参考答案 一.单项选择题 1. 运算符___________的优先级最高. A.[ ...
- c语言程序设计B试题,c语言程序设计期末试题B(含答案)Word版
<c语言程序设计期末试题B(含答案)Word版>由会员分享,可在线阅读,更多相关<c语言程序设计期末试题B(含答案)Word版(6页珍藏版)>请在人人文库网上搜索. 1.传播优 ...
最新文章
- BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
- Sublime Text 3 中文乱码的解决方法
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
- Qt文档阅读笔记-Qt Quick 3D - Simple Example解析
- H5学习之旅-H5的表单(11)
- 周日慕田峪生鱼片之旅,失败的第一次出台
- 用并发队列(ConcurrentQueue)实现多线程任务中随时异步回调进度通知(.Net4.0)
- 软件项目实施进度计划表
- minecraft我的世界服务器自动备份脚本
- 大数据发展的根基是什么?
- 《昆虫记》思维导图|思维导图模板创意漂亮
- linux查看udp端口占用命令,详解Linux查看端口占用
- oracle数据库hiredate,Oracle数据库学习三
- mybais学习记录一——入门程序
- 金蝶KIS迷你版标准版备份助手V2.0
- 用百度大脑EasyDL平台轻松玩转AI
- 【机器学习基础】无监督学习(1)——PCA
- mysql中的浮点数和定点数
- 贵阳骑龙村:一根小香葱闯出大市场
- 怎样添加服务器远程角色,添加角色和功能,Windows Server 2012 R2如何安装远程桌面服务...
热门文章
- ios uiview 如何刷新_ios – 从另一个UIViewController刷新表
- 一种比sys.path更好的获得当前脚本路径的方法
- AutoML - 数据增广
- svm最大间隔函数及目标函数推导
- python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结
- 《系统集成项目管理工程师》必背100个知识点-45质量管理
- linux 命令 echo 使用说明
- CentOS7 安装 mircosoft Netcore 自测部署安装
- Windows服务器上Mysql为设置允许远程连接提示:not allowed to connect to this MySQL server
- Ionic介绍以及搭建环境、新建和运行项目