strcpy和memcpy的标准实现
来源:互联网 发布:python字符串变成列表 编辑:程序博客网 时间:2024/05/22 12:10
strcpy和memcpy都是标准C库函数,它们有下面的特点。
strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。
已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);
memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
void *memcpy( void *dest, const void *src, size_tcount );
#include <iostream>#include <string.h>#include <cassert>using namespace std;char* strcpy(char *dst, const char *src) {assert(src != NULL);assert(dst != NULL);char *ret = dst;while((*dst++ = *src++) != '\0') ;return ret;}void* memcpy(void *dst, const void *src, size_t len) {assert(src != NULL);assert(dst != NULL);void *ret = dst;int i = len;if(src < dst) {char *csrc = (char *)src;char *cdst = (char *)dst;while(i--){*cdst++ = *csrc++;}} else {char *csrc = (char *)src + len - 1;char *cdst = (char *)dst + len - 1;while(i--) {*cdst-- = *csrc--;}}return ret;}int main() {char *src = "hello world";char *dst = new char[0];cout << strcpy(dst, src) << endl;void *memsrc = (void *)"hello";char memdst[6];memdst[5] = '\0';cout << (char *)memcpy(memdst, memsrc, 5) << endl;return 0;}
0 0
- strcpy和memcpy的标准实现
- Strcpy 和 memcpy 实现
- strcpy 和 memcpy两个函数的实现
- strcpy 和 memcpy两个函数的实现
- strcpy和memcpy函数的实现
- strcpy和memcpy的区别与实现
- strcpy和memcpy函数的实现
- strcpy,strcat,memcpy和memmove的实现
- 实现自己的strcpy和memcpy
- memcpy和strcpy函数实现
- strcpy以及memcpy的实现
- strcpy/memcpy/memmove的实现
- strcpy/memcpy/memmove的实现
- strcpy,memcpy函数的实现
- strcpy、memcpy函数的实现
- strcpy、memcpy和memmove的区别和实现
- memcpy()和strcpy的区别
- memcpy 和strcpy的区别
- 基于visual Studio2013解决算法导论之018栈实现(基于链表)
- oracle教程之oracle关于索引的概念分类、相关操作解析
- Ambari安装时报:Ambari agent machine hostname (localhost.localdomain) does not match expected ambari serv
- 讲作业的day13/类之间的关系day14
- javaSE-常用类-集合类Set系列
- strcpy和memcpy的标准实现
- 基于visual Studio2013解决算法导论之019栈实现(基于数组)
- Qt之Esc键
- Bootstarp学习教程(7) 表单
- oracle教程之Oracle关于表空间(tablespaces)
- php进制之间相互转换
- String\StringBuffer\StringBulid简介_包装类_Byte_Short_Integer_Long/day15
- SQLite 入门教程(三)好多约束 Constraints
- Tomcat内存溢出