memcpy和strcpy实现
memcpy
void* my_memcpy(void* dst, const void* src, size_t sz) {if (dst == nullptr || src == nullptr)return nullptr;char* pdst = static_cast<char*>(dst);const char* psrc = static_cast<const char*>(src);// 地址如果存在重叠,从后往前复制if (psrc < pdst && psrc + sz > pdst) {for (int i = sz-1; i >= 0; --i)pdst[i] = psrc[i];}// 否则从前往后进行内存复制else {for (int i = 0; i < sz; ++i)pdst[i] = psrc[i];}return dst;
}int main() {const char* src = "this";char dst[6];my_memcpy(dst, src, 5);for (auto i : dst)cout << i << endl;return 0;
}
strcpy
//https://blog.csdn.net/okawari_richi/article/details/57411796
char* strcpy_(char* dst, const char* src) {if (dst == nullptr || src == nullptr)return nullptr;char* res = dst;while ((*dst++ = *src++) != '\0')continue;return res;
}char* strcpy_s_(char* dst, size_t dst_size, const char* src) {if (dst == nullptr || src == nullptr)return nullptr;char* res = dst;int i = 0;while ( i < dst_size && (*dst++ = *src++) != '\0') {++i;}if(i == dst_size) res[dst_size - 1] = '\0';return res;
}
memcpy和strcpy实现相关推荐
- memcpy和strcpy的区别 ?
memcpy和strcpy的区别 strcpy和memcpy主要有以下3方面的区别 复制的内容不同 用途不同 从s1复制字符串到s2strncpy和memcpy很相似,只不过它在一个终止的空字符处停止 ...
- C语言 memcpy 和 strcpy 函数区别 - C语言零基础入门教程
目录 一.memcpy 函数/strcpy 函数简介 二.memcpy 函数/strcpy 函数实战 1.strcpy 函数属于字符串拷贝 2.memcpy 函数属于内存拷贝 三.猜你喜欢 零基础 C ...
- 拷贝函数memcpy和strcpy的用法及区别
memcpy和strcpy的区别 memecpy拷贝,是内存之间的拷贝.strcpy是字符串的拷贝 memcpy按位拷贝 int main() {int ar[10] = { 12, 23, 34, ...
- c语言memcpy与strcpy,C语言:strcpy()和memcpy()
一.strcpy和memcpy都是标准C库函数,它们有下面的特点: 1.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知st ...
- [收集] C++ memset ,memcpy 和strcpy 的区别
Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为' '或'\0': 例:char a[100];memset(a, '\0', sizeof(a)); mems ...
- memset、memcpy、strcpy、HeapAlloc
win7, vc6:新建一个单文档工程:代码: void CMemView::OnDraw(CDC* pDC) {CMemDoc* pDoc = GetDocument();ASSERT_VALID( ...
- memcpy和strcpy的区别及memcmp和strcmp的区别
strcpy与memcpy的区别: strcpy的原型:char *strcpy(char *dest, const char *src) strcpy是拷贝字符串.①不指定长度②以\0为标志结束(即 ...
- c++ memcpy与strcpy的比较
1:区别 memcpy可以拷贝任何数据类型的对象,指定拷贝的数据长度. strcpy只能拷贝字符串了,它遇到'\0'就结束拷贝 2:性能 static inline char *__kernel_st ...
- memcpy和strcpy函数
strcpy strcpy 是字符串拷贝函数,那什么是字符串呢,最后一个字符为零意思是字符串结束,哪怕后面有再多字节也没有用,比如 char buffer[256]; char *pos = & ...
- memcpy与strcpy的实现与区别
原型:extern void *memcpy(void *dest, void *src, unsigned int count); 功能:由src所指内存区 ...
最新文章
- Vscode配置C语言问题
- jQuery操作元素属性
- python程序打包多个py文件_不使用setup.py,打包 Python 项目
- elasticsearch 索引存储深入详解(Elasticsearch教程03)|MVP讲堂
- kafka 数据可靠性深度解读
- android 仿今日头条_Android今日头条UI适配完善版
- java两个return_关于java:调用另一个方法时return语句不起作用
- 美团回应整改;贾跃亭卷土重来;乐视再度换帅| CSDN极客头条
- 中国即时通信用户6.42亿 企业市场竞争将更激烈
- java课程设计文档_Java课程设计-文档相似性检查系统(完整)测试版
- 共享服务器文件溢出,文件共享锁定数溢出
- Python微信库:itchat的用法详解
- python中空集怎么表示
- Modulo Summation——UPC
- stm32时钟问题简单介绍
- Python大疆相片/航片/照片的内容信息获取:以m300为例JPG
- 小红书账号分析丨小红书kol速成干货分享
- .NET官方封装的Win32API类库
- CAN转光纤以太网设备实现CAN网络之间超远距离光纤连通
- 《西瓜书》吃瓜笔记1、2章