memcpy与strcpy不同之处有二: 1 memcpy可以指定复制的长度 2 memcpy可以复制任意类型的数据 strcpy只能复制char*
#include<iostream>
#include<assert.h>
using namespace std;
void strmemcpy(void *dest,const void *source,size_t n) //注意size_t
{
assert(NULL!=source);
char* str_dest=(char*)dest; //需要将void 转换成 char*
char* str_source=(char*)source;
int len_sour=strlen(str_source);
if(len_sour<n)
return;
while(n-->0)
{
*str_dest++=*str_source++;
}
}
int main()
{
char str_source[10]="abcdefg";
char str_destination[10];
strmemcpy(str_destination,str_source,5);
str_destination[5]='/0';
cout<<"source char:"<<str_source<<endl;
cout<<"destination char:"<<str_destination<<endl;
return 0;
}