模拟实现内存比较函数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的区别相关推荐

  1. 在线c语言考试模拟试题,C语言模拟考试试题选择题(模拟).doc

    C语言模拟考试试题选择题(模拟) C语言模拟考试试题选择题(模拟)141. 已知ch是字符型变量,下面不合理的赋值语句是____. ch = '\023' ch = '\n' ch = 12.3 ch ...

  2. 2014c语言二级考试题,2014计算机二级等级考试试题:C语言模拟题

    ((1)-(10)每小题2分,(11)-(50)每题1分,共60分) 一 .下列各题A.B.C.D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)下列叙 ...

  3. 计算机二级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 ...

  4. C语言模拟11答案,C语言模拟试题11答案.doc

    C语言模拟试题11答案.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  5. 2014年计算机二级c语言试题,2014年计算机二级C语言模拟试题及答案(3)

    2014年计算机二级C语言模拟试题及答案(3) 19.下列程序的输出结果是( ). int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(" ...

  6. c语言中输出1st,高等学校计算机等级考试C语言模拟试题1st-all.doc

    高等学校计算机等级考试C语言模拟试题1st-all 上海市高等学校计算机等级考试C语言模拟试题 学院 _____________ 班级 __________ 姓名 __________ 学号 ____ ...

  7. 输出246810图形c语言,二级C语言模拟试题8套

    二级C语言模拟试题8套 全国计算机等级考试二级C语言上机模拟试题汇编(8套)第1套[试题一]给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组 ...

  8. 达内C语言试题,(达内培训2013年计算机等考二级C语言模拟试题四及参考答案.doc...

    (达内培训2013年计算机等考二级C语言模拟试题四及参考答案 [达内培训]2013年计算机等考二级C语言模拟试题四及参考答案 一.单项选择题 1. 运算符___________的优先级最高. A.[ ...

  9. c语言程序设计B试题,c语言程序设计期末试题B(含答案)Word版

    <c语言程序设计期末试题B(含答案)Word版>由会员分享,可在线阅读,更多相关<c语言程序设计期末试题B(含答案)Word版(6页珍藏版)>请在人人文库网上搜索. 1.传播优 ...

最新文章

  1. BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
  2. Sublime Text 3 中文乱码的解决方法
  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
  4. Qt文档阅读笔记-Qt Quick 3D - Simple Example解析
  5. H5学习之旅-H5的表单(11)
  6. 周日慕田峪生鱼片之旅,失败的第一次出台
  7. 用并发队列(ConcurrentQueue)实现多线程任务中随时异步回调进度通知(.Net4.0)
  8. 软件项目实施进度计划表
  9. minecraft我的世界服务器自动备份脚本
  10. 大数据发展的根基是什么?
  11. 《昆虫记》思维导图|思维导图模板创意漂亮
  12. linux查看udp端口占用命令,详解Linux查看端口占用
  13. oracle数据库hiredate,Oracle数据库学习三
  14. mybais学习记录一——入门程序
  15. 金蝶KIS迷你版标准版备份助手V2.0
  16. 用百度大脑EasyDL平台轻松玩转AI
  17. 【机器学习基础】无监督学习(1)——PCA
  18. mysql中的浮点数和定点数
  19. 贵阳骑龙村:一根小香葱闯出大市场
  20. 怎样添加服务器远程角色,添加角色和功能,Windows Server 2012 R2如何安装远程桌面服务...

热门文章

  1. ios uiview 如何刷新_ios – 从另一个UIViewController刷新表
  2. 一种比sys.path更好的获得当前脚本路径的方法
  3. AutoML - 数据增广
  4. svm最大间隔函数及目标函数推导
  5. python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结
  6. 《系统集成项目管理工程师》必背100个知识点-45质量管理
  7. linux 命令 echo 使用说明
  8. CentOS7 安装 mircosoft Netcore 自测部署安装
  9. Windows服务器上Mysql为设置允许远程连接提示:not allowed to connect to this MySQL server
  10. Ionic介绍以及搭建环境、新建和运行项目