今天用到了memcpy()库函数,自己实现了一个,如下:


int memcmp(const void *str1, const void *str2, size_t count) {assert((NULL != str1) && (NULL != str2));const char *pstr1 = (const char*)str1;const char *pstr2 = (const char*)str2;while (count--) {if (*pstr1 && *pstr2 && (*pstr1 == *pstr2)) {continue;} else {break;}}return (*pstr1 - *pstr2);
}

是否有更好的实现方式?请大师指点

本人是参考了strcmp()的函数实现的,strcmp()的函数实现如下:

int stcmp(const char *str1, const char *str2) {assert((nullptr != str1) && (nullptr != str2));while (*str1 && *str2 && (*str1 == *str2)) {str1++;str2++;}return (*str1 - *str2);
}

memcmp()库函数实现相关推荐

  1. 冰冰学习笔记:内存操作函数

    在前面的章节中我们介绍了字符操作函数的用法,用以实现字符串的复制,连接,比较,查找等操作.但是C语言中并非只有字符串需要这些操作,其他类型的变量也会用到复制,比较等操作.此时,字符串操作函数将不再适用 ...

  2. C语言 | 进阶之路第一关

    目录 前言 - 文章概述 深入剖析数据在内存中的存储 数据的类型 整型在内存中的存储 浮点型在内存中的存储 指针进阶 字符指针 指针数组 数组指针 数组传参和指针传参 函数指针 函数指针数组 指向函数 ...

  3. C语言字符串处理的库函数

    使用C语言字符串处理的库函数,务必包含头文件string.h,即#include <string.h>       1. 比较字符串大小函数        1) 忽略大小写---strca ...

  4. linux下的c库函数大全

    linux下的c库函数大全,虽然没有函数描述,但是最起码可以知道分类,就可以去 man 了 Linux C函数库参考手册 第1章字符测试函数 isalnum(测试字符是否为英文字母或数字) isalp ...

  5. Keil C51的库函数

    转自:http://www.dwenzhao.cn/profession/mcu/mcu51clib.html Keil C51有丰富的可直接调用的库函数,灵活使用库函数可使程序代码简单.结构清晰,并 ...

  6. memcpy、memmove、memset、memchr、memcmp、strstr详解

    第一部分 综述 memcpy.memmove.memset.memchr.memcmp都是C语言中的库函数,在头文件string.h中.memcpy和memmove的作用是拷贝一定长度的内存的内容,m ...

  7. java memcmp_C 库函数

    C 库函数 - memcmp() 描述 C 库函数 int memcmp(const void *str1, const void *str2, size_t n)) 把存储区 str1 和存储区 s ...

  8. c语言设置输出字符大小_C语言中常用的几个头文件及库函数

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://www.jb51.net/article/124594.htm 这 ...

  9. c++fabs函数_C语言中常用的标准库函数有哪些?

    点击上方蓝色字关注我们! 本文转自网络,版权归原作者所有. 标准头文件包括: 一.标准定义() 文件里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,都会被自动包含进来. 这个文件里定义: 类 ...

最新文章

  1. plotly可视化绘制多子图(subplots)并自定义坐标轴
  2. 【ZJOI 2008】树的统计 Count
  3. 安装xml2js出现npm ERR! code E404 npm ERR! 404 Not Found: event-stream@3.3.6
  4. WCF基础 (续 暴露元数据交换节点)
  5. php 输出 cvs,php将数组转换成cvs格式并输出的简单示例
  6. ECharts 之 环形图
  7. android最全面试题71道题 详解
  8. xenserver 脚本学习之/opt/xensource/bin/xapi-wait-init-complete
  9. 关于pipelineDB调用GetLocalStreamReaders的BUG
  10. 2016年成熟亚太地区公共云服务市场规模将达到81亿美元
  11. freemarker 异常处理
  12. [html] 怎样在<pre>标签内不转义<和>符号(原样输出html标签)?
  13. go TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body.
  14. 小学奥数 7648 蓄水池水管问题 python
  15. C#中释放数据库连接资源
  16. 2016年2月23日----Javascript全局变量和局部变量
  17. C/C++代码虚拟化保护 在移动端的应用
  18. pb9 调用系统语音_语音通知解决方案,VIKI语音通知软件介绍
  19. iphone pop服务器没有响应,iPhone 6 Plus跳屏或者触摸失灵的解决办法
  20. 使用STM32CubeMX和SW4STM32在Nucleo-F401RE开发板轻松实现Blinky闪烁 [

热门文章

  1. 前端js文件合并三种方式
  2. touchesEnded不响应
  3. CentOS下安装MySQL报安装文件conflicts错误:
  4. Linux下ejabberd安装配置
  5. 阻止函数源码在控制台输出
  6. HttpClient和DefaultHttpClient
  7. 学成在线--16.添加课程计划
  8. python的datetime函数_Python连载8-datetime包函数介绍
  9. mac安装完mysql后关机特别慢_mysql-Mac终端下遇到的问题总结
  10. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题