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. 2015年度互联网安全报告发布 移动支付成重灾区
  2. asp.net type=file前后台合作 在上传图片到服务器
  3. 笔记-项目沟通管理-沟通管理计划
  4. boost::multiprecision模块cpp_dec_float_100相关的测试程序
  5. 农业部部署农业大数据发展工作 评:对农业现代化很重要
  6. 【载誉】致远互联荣获“2017最佳协同管理解决方案”殊荣
  7. php面试题之一——HTML+CSS(基础部分)
  8. Javascript 设置Cookie
  9. linux开发板推荐
  10. 多个jdk共存与切换
  11. 东北旅行第一天流水账
  12. 不能错过的徒步欢乐:从秦皇岛到北戴河
  13. 用ps增加照片的气氛--镜头光晕
  14. 树突细胞会降解肿瘤抗原,阻断这一过程
  15. 【社区图书馆】vue的生命周期
  16. FreeRTOS简介
  17. dropdownlist下拉框变透明_Unity3D 4.x利用原生UGUI完成下拉列表DropDownList
  18. 八大行业Hadoop大数据应用回顾和展望
  19. Java substr 用法_java中substring与substr的用法
  20. php充值赠送如何结算,餐饮会员充值赠送怎么计算成本?

热门文章

  1. matlab用arch模型算隐含波动率,期权定价中的隐含波动率是用来衡量【基于MATLAB的欧式期权定价与隐含波动率应用】...
  2. 7-101 个位数统计分数 15作者 陈越单位 浙江大学
  3. 2013.10-2015.9 图书馆借阅书籍情况
  4. 解读STEAM教育中的表现性评价
  5. android 4.0以上系统如何实现自动接听电话
  6. 中巴、资源、高分、环境国产卫星数据下载 | 陆地观测卫星数据服务平台
  7. 2022年全国计算机二级考试MS Office题库软件(考试原题)
  8. Linux内核源码 ---- el2_setup源码解析
  9. Win7 64的cmd控制台进入下级目录和返回上级目录(上级目录cd .. 下级目录cd+文件名称)
  10. (摘自百度百科)石油输出国组织-欧派克(伊朗、伊拉克、科威特、沙特阿拉伯和委内瑞拉)介绍...