struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};struct sample_strcut stTest;
stTest.csName[0]='\0'; stTest.iSeq=0; stTest.iType=0;
memset(&stTest,0,sizeof(struct sample_struct));
1.代码实现
char* strcpy(char* strDest, const char*strSrc)
{
<span style="white-space:pre"> </span>ASSERT(strDest!= NULL && strSrc != NULL);
<span style="white-space:pre"> </span>char* strTmpD = strDest;
<span style="white-space:pre"> </span>while ((*strTmpD++ = *strSrc++) != '0')
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return strDest ;
}
void* memcpy(void* pDest, const void* pSrc,unsigned int size)
{
<span style="white-space:pre"> </span>ASSERT(pDest != NULL && pSrc != NULL);
<span style="white-space:pre"> </span>byte* pTmpD = (byte*)pDest;
<span style="white-space:pre"> </span>byte* pTmpS = (byte*)pSrc;
<span style="white-space:pre"> </span>while (size-- >0)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>*pTmpD++ = * pTmpS++;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return pDest;
}
2.strcpy和memcpy的区别
(1).strcpy只能用于字符串拷贝;而memcpy是内存拷贝,可以拷贝任何类型的数据。
(2).当二者都进行字符串拷贝时,strcpy遇到字符串结尾‘\0‘即完成;而memcpy只是内存的原样拷贝,不管遇到什么。
原文:http://blog.csdn.net/ucan23/article/details/46003783