#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
using namespace std;
char* myStrcpy(char *dst,char *src)
{
assert(dst);
assert(src);
char *ret = dst;
// while((*(dst++) = *(src++)) != '\0'); //踩内存
memcpy(dst,src,strlen(src)+1);
return ret;
}
char *myMemcpy(char *dst,char *src,int cnt)
{
assert(dst);
assert(src);
char *ret = dst;
if( (dst<=src) || dst >= (src+cnt) )
{
while(cnt--)
{
*dst++ = *src++;
}
}
else
{
dst = dst + cnt - 1;
src = src + cnt - 1;
while(cnt--)
{
*dst-- = *src--;
}
}
return ret;
}
void testOJ()
{
char strSrc[10]="abcd";
char strDst[10];
int len = (int)strlen(strSrc);
// myMemcpy(strDst,strSrc,len);
myStrcpy(strSrc+1,strSrc);
std::cout << "dst: " << strSrc << endl;
return;
}
int main()
{
testOJ();
return 0;
}
实现strcpy()和memcpy()
最新推荐文章于 2024-08-22 15:48:46 发布