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实现相关推荐

  1. memcpy和strcpy的区别 ?

    memcpy和strcpy的区别 strcpy和memcpy主要有以下3方面的区别 复制的内容不同 用途不同 从s1复制字符串到s2strncpy和memcpy很相似,只不过它在一个终止的空字符处停止 ...

  2. C语言 memcpy 和 strcpy 函数区别 - C语言零基础入门教程

    目录 一.memcpy 函数/strcpy 函数简介 二.memcpy 函数/strcpy 函数实战 1.strcpy 函数属于字符串拷贝 2.memcpy 函数属于内存拷贝 三.猜你喜欢 零基础 C ...

  3. 拷贝函数memcpy和strcpy的用法及区别

    memcpy和strcpy的区别 memecpy拷贝,是内存之间的拷贝.strcpy是字符串的拷贝 memcpy按位拷贝 int main() {int ar[10] = { 12, 23, 34, ...

  4. c语言memcpy与strcpy,C语言:strcpy()和memcpy()

    一.strcpy和memcpy都是标准C库函数,它们有下面的特点: 1.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知st ...

  5. [收集] C++ memset ,memcpy 和strcpy 的区别

    Memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为' '或'\0': 例:char a[100];memset(a, '\0', sizeof(a)); mems ...

  6. memset、memcpy、strcpy、HeapAlloc

    win7, vc6:新建一个单文档工程:代码: void CMemView::OnDraw(CDC* pDC) {CMemDoc* pDoc = GetDocument();ASSERT_VALID( ...

  7. memcpy和strcpy的区别及memcmp和strcmp的区别

    strcpy与memcpy的区别: strcpy的原型:char *strcpy(char *dest, const char *src) strcpy是拷贝字符串.①不指定长度②以\0为标志结束(即 ...

  8. c++ memcpy与strcpy的比较

    1:区别 memcpy可以拷贝任何数据类型的对象,指定拷贝的数据长度. strcpy只能拷贝字符串了,它遇到'\0'就结束拷贝 2:性能 static inline char *__kernel_st ...

  9. memcpy和strcpy函数

    strcpy strcpy 是字符串拷贝函数,那什么是字符串呢,最后一个字符为零意思是字符串结束,哪怕后面有再多字节也没有用,比如 char buffer[256]; char *pos = & ...

  10. memcpy与strcpy的实现与区别

    原型:extern   void   *memcpy(void   *dest,   void   *src,   unsigned   int   count);      功能:由src所指内存区 ...

最新文章

  1. Vscode配置C语言问题
  2. jQuery操作元素属性
  3. python程序打包多个py文件_不使用setup.py,打包 Python 项目
  4. elasticsearch 索引存储深入详解(Elasticsearch教程03)|MVP讲堂
  5. kafka 数据可靠性深度解读
  6. android 仿今日头条_Android今日头条UI适配完善版
  7. java两个return_关于java:调用另一个方法时return语句不起作用
  8. 美团回应整改;贾跃亭卷土重来;乐视再度换帅| CSDN极客头条
  9. 中国即时通信用户6.42亿 企业市场竞争将更激烈
  10. java课程设计文档_Java课程设计-文档相似性检查系统(完整)测试版
  11. 共享服务器文件溢出,文件共享锁定数溢出
  12. Python微信库:itchat的用法详解
  13. python中空集怎么表示
  14. Modulo Summation——UPC
  15. stm32时钟问题简单介绍
  16. Python大疆相片/航片/照片的内容信息获取:以m300为例JPG
  17. 小红书账号分析丨小红书kol速成干货分享
  18. .NET官方封装的Win32API类库
  19. CAN转光纤以太网设备实现CAN网络之间超远距离光纤连通
  20. 《西瓜书》吃瓜笔记1、2章

热门文章

  1. Oracle 11G OCP 1Z0-053 457
  2. Windows系统下是否有像Downie一样好用的下载软件?还别说,这3款好用的下载软件可能99%的人不知道
  3. 推荐一些Golang教程
  4. XPlane android 2D手游开发实战
  5. git提交代码被拒推送
  6. js 时间戳增加1小时或 N 小时
  7. 、PageHelper.startPage使用方法
  8. 市场营销书籍,这本书能帮你提升营销管理能力
  9. 向量沿着另一个向量旋转
  10. EMNLP 2020 | Facebook稠密向量召回方案