《strcmp,strcpy,memcpy,memmove等函数模拟实现》
模拟实现常见字符串函数比如: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等函数模拟实现》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- 视频处理的知识_开源项目_项目列表
- 中台是个什么鬼 | 白话中台战略
- 51nod1551-集合交易【hall定理,最大权闭合图,网络流】
- python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
- python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式
- Delphi 7皮肤控件VCLSkin 5 60的使用
- 做基础产品的体会【转载】
- 数据科学包3-pandas快速入门2
- java Sting类函数
- 【双十一特辑】爱心代码(程序员的浪漫)-李峋
- Win系统新建文件夹快捷键
- 3dmax2017卸载/安装失败/如何彻底卸载清除干净3dmax2017注册表和文件的方法
- 安装tensorflow提示Requirement already satisfied,然而无法导入tensorflow
- Python 遗传算法实现字符串
- 【控制篇 / 应用】(6.0) ❀ 01. 只允许使用 QQ 和微信 (上) ❀ FortiGate 防火墙
- 【Win 10】学生必备!删除鼠标右键多余的“新建”选项
- 《武道神尊》12.29上线链游玩家|放置挂机、轻松修真
- 有时间要看的书(个人整理)
- 等保2.0.第五章.网络安全产品与方案(中)
- Flag Engine(动画系统)学习笔记(六)——动画片段
热门文章
- 按上下限范围分组_分组排列显规律—浅析质量工具直方图
- 人脑皮层组织的大尺度梯度 Large-Scale Gradients in Human Cortical Organization
- vue:extend和mixin的区别
- oracle客户端mac地址,Oracle客户端工具之 Oracle SQL Handler For Mac下载
- zabbix3.4安装
- 语音测试软件 呼+未,【VoLTE】呼叫问题分析
- 2022谈谈海信电视/U盘装软件
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
- 215.	数组中的第 K个最大元素
- 内部计算机是否可以存储器,计算机基本理论基础知识总汇.