模拟实现常见字符串函数比如:strcmp,strcpy,memcpy,memmove等函数

  • 1.模拟实现memcpy函数
  • 2.模拟实现memmove函数
  • 3.模拟实现strstr函数
  • 4.模拟实现strcat函数
  • 5.模拟实现strcmp函数

1.模拟实现memcpy函数

void *MyMemCpy(void *dest, void *src, size_t count)
{void *ret = dest;assert(dest);assert(src);while (count--){*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}return ret;
}

2.模拟实现memmove函数

void *MyMemMove(char *dest, char *src, size_t count)
{char *ret = dest;if (dest <= src || (char*)dest >= (char*)src + count){while (count--){*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}}else{dest = (char*)dest + count - 1;src = (char*)src + count - 1;while (count--){*(char*)dest = *(char*)src;dest = (char*)dest - 1;src = (char*)src - 1;}}return ret;
}

3.模拟实现strstr函数

char *myStrStr( char* str1, char* str2)
{assert(str1);assert(str2);char *cp = (char*)str1;char *substr = (char*)str2;char *s1 = NULL;if (*str2 == '\0'){return NULL;}while (*cp){s1 = cp;substr = str2;while (*s1 && *substr && (*s1 == *substr)){s1++;substr++;}if (*substr == '\0'){return cp;}cp++;}
}

4.模拟实现strcat函数

char *myStrCat(char *dest, char *src)
{char *ret = dest;assert(dest);assert(src);while (*dest){dest++;}while (*src){*dest++=*src++;}return ret;
}

5.模拟实现strcmp函数

int myStrCmp(char *dest, char *src)
{int ret = 0;assert(src != NULL);assert(dest != NULL);while (!(ret = *(unsigned char *)src - *(unsigned char *)dest) && *dest){++src;++dest;}if (ret < 0){ret = -1;}else if (ret>0){ret = 1; }return ret;
}

《strcmp,strcpy,memcpy,memmove等函数模拟实现》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 视频处理的知识_开源项目_项目列表
  2. 中台是个什么鬼 | 白话中台战略
  3. 51nod1551-集合交易【hall定理,最大权闭合图,网络流】
  4. python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
  5. python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式
  6. Delphi 7皮肤控件VCLSkin 5 60的使用
  7. 做基础产品的体会【转载】
  8. 数据科学包3-pandas快速入门2
  9. java Sting类函数
  10. 【双十一特辑】爱心代码(程序员的浪漫)-李峋
  11. Win系统新建文件夹快捷键
  12. 3dmax2017卸载/安装失败/如何彻底卸载清除干净3dmax2017注册表和文件的方法
  13. 安装tensorflow提示Requirement already satisfied,然而无法导入tensorflow
  14. Python 遗传算法实现字符串
  15. 【控制篇 / 应用】(6.0) ❀ 01. 只允许使用 QQ 和微信 (上) ❀ FortiGate 防火墙
  16. 【Win 10】学生必备!删除鼠标右键多余的“新建”选项
  17. 《武道神尊》12.29上线链游玩家|放置挂机、轻松修真
  18. 有时间要看的书(个人整理)
  19. 等保2.0.第五章.网络安全产品与方案(中)
  20. Flag Engine(动画系统)学习笔记(六)——动画片段

热门文章

  1. 按上下限范围分组_分组排列显规律—浅析质量工具直方图
  2. 人脑皮层组织的大尺度梯度 Large-Scale Gradients in Human Cortical Organization
  3. vue:extend和mixin的区别
  4. oracle客户端mac地址,Oracle客户端工具之 Oracle SQL Handler For Mac下载
  5. zabbix3.4安装
  6. 语音测试软件 呼+未,【VoLTE】呼叫问题分析
  7. 2022谈谈海信电视/U盘装软件
  8. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
  9. 215. 数组中的第 K个最大元素
  10. 内部计算机是否可以存储器,计算机基本理论基础知识总汇.