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