strcpy和memcpy都是标准C库函数,它们有下面的特点。
strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。
已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);
memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
void *memcpy( void *dest, const void *src, size_t
count );
#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;
}
分享到:
相关推荐
常用函数的实现strcpy,memcpy,memmove,strcat,strcmp原型
C语言 strcpy和memcpy区别详细介绍 PS:初学算法,开始刷leetcode,Rotate array的预备知识(写的代码Time Limit Exceed难过)于是百度高效算法,本篇作为预备知识。 1、strcpy和strncpy函数 这个不陌生,大一学...
本篇文章是对strcpy与memcpy的区别进行了详细的分析介绍,需要的朋友参考下
网上参考资料写的memcpy以及strcpy的源码,希望能帮助大家。
memcpy 和strcpy 的区别
。。。
。。。
本文详细介绍了Memset、Memcpy、Strcpy 的作用及三者的区别,函数原型及使用技巧等。
用于了解安全函数strcpy_s、strncpy_s、snprintf_s、memcpy_s
memset,memcpy,strcpy 的用法,详细区别还有优缺点对比!
本篇文章是对C++中memset,memcpy,strcpy的区别进行了详细的分析介绍,需要的朋友参考下
void memsetEX(unsigned char *dst,unsigned char val,unsigned char len); void memcpyEX(unsigned char *dst,unsigned char *src,unsigned char len); unsigned char memcmpEX(unsigned char *dst,unsigned char...
1. 复制的内容不同 2. 复制的法不同 3. 途不同 1. dest指向的空间要够拷 3. 使strncpy时,确保dest的最后个字符是“\0”
strcmp strcpy strcat strlen 的实现 以及与strncat strncpy strncmp memcpy memcmp 原型分析
。。。
。。。
1.11 memcpy和memmove函数的实现 1.12 strcat函数实现 1.13 使用库函数atoi,将char *→int 1.14 使用库函数itoa,将int→char * 1.15 不使用库函数,将int→char * 1.16 不使用库函数,将char *→int 1.17 求两个...
strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 memcpy提供了一般内存的复制。即memcpy对于...