#include <iostream>
#include <assert.h>
using namespace std;
char *strcpy1(char *strDest, const char *strSrc)//strcpy只能复制字符串
{
assert((strDest != NULL) && (strSrc != NULL));
char *address = strDest;
while ((*strDest++ = *strSrc++) != '\0')
;
return address;
}
void *memcpy1(void *memTo, const void *memFrom, size_t size)//memcpy可以复制任意内容,例如字符数组、整型、结构体、类等
{
if ((memTo == NULL) || (memFrom == NULL)) //memTo和memFrom必须有效
return NULL;
char *tempTo = (char *)memTo; //保存memTo首地址
char *tempFrom = (char *)memFrom; //保存memFrom首地址
while (size-- > 0) //循环size次,复制memFrom的值到memTo中
*tempTo++ = *tempFrom++;
return memTo;
}
int main()
{
char a[30];
strcpy1(a, "myteacher");
cout << a << endl;
memcpy1(a, "myteacher2",11);
cout << a << endl;
return 0;
}
strcpy memcpy实现原理
最新推荐文章于 2023-11-11 21:53:20 发布