#include <stdio.h>
#include <assert.h>
char * cpy(char *dst,const char *src,unsigned int count)
{
char* ret = dst;//返回指针的目的地址(起始地址)
assert(dst);//assert(dst != NULL);
//assert(src != NULL);检查指针的有效性
assert(src);
if((dst <= src) || (dst >= (src + count)))
{
while(count--)
{
*dst++ = *src++;
}
}
else//内存重叠
{
dst = dst + count - 1;
src = src + count - 1;
while(count--)
{
*dst-- = *src--;//倒着拷贝
}
}
return ret;
}
void main()
{
char num[20];
char * name = "name:laowang";
cpy(num,name,20);
printf("copying string is: %s\n",num);
}