strcpy和memcpy【转】
1.代码实现
char* strcpy(char* strDest, const char* strSrc)
{
ASSERT(strDest != NULL && strSrc != NULL);
char* strTmpD = strDest;
while ((*strTmpD++ = *strSrc++) != '0')
{
}
return strDest ;
}
void* memcpy(void* pDest, const void* pSrc, unsigned int size)
{
ASSERT(pDest != NULL && pSrc != NULL);
byte* pTmpD = (byte*)pDest;
byte* pTmpS = (byte*)pSrc;
while (size-- >0)
{
*pTmpD++ = * pTmpS++;
}
return pDest;
}
2.strcpy和memcpy的区别
(1).strcpy只能用于字符串拷贝;而memcpy是内存拷贝,可以拷贝任何类型的数据。
(2).当二者都进行字符串拷贝时,strcpy遇到字符串结尾'\0'即完成;而memcpy只是内存的原样拷贝,不管遇到什么。