``
#include <stdio.h>
#include <assert.h>
char* my_strcpy(char* dst,const char *src)
{
int len = 0;
int loop = 0;
assert(NULL != dst && NULL != src);
while(src[len] != '\0')
{
len ++;
}
if((dst <= src) || (dst >= src + len))
{//正序拷贝
while(loop < len)
{
dst[loop] = src[loop];
loop ++;
}
}
else
{//倒序拷贝
while(len)
{
len --;
dst[len] = src[len];
}
}
return dst;
}
int main(void)
{
char b[20];
char a[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,0};
char *pa = &a[4];
//char *pb = &a[8];
//char *pb = &a[0];
//char *pb = &a[4];
char *pb = b;
my_strcpy(pb,pa);
while(*pb){
printf("%d\n",*pb);
pb ++;
}
return 0;
}