69,369
社区成员
发帖
与我相关
我的任务
分享
char * mystrcat( char * dst, const char * src )
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
/* 实际把这句 while( *cp++ = *src++) 拆开
首先*cp = *src 赋值,然后判断表达式的值while(*cp)
然后自增cp++, src++ 所以,整个表达式的结束判断就在于while(*cp)
如果*cp== '/0 ',因为 '/0 '对应的ascii码就是0,所以判断就为假,也就退出循环了*/
return( dst ); /* return dst */
}
char * mystrcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ ) ; /* Copy src over dst 参考上面mystrcat */
return( dst );
}
/***
*char *strcpy(dst, src) - copy one string over another
*
*Purpose:
* Copies the string src into the spot specified by
* dest; assumes enough room.
*
*Entry:
* char * dst - string over which "src" is to be copied
* const char * src - string to be copied over "dst"
*
*Exit:
* The address of "dst"
*
*Exceptions:
*******************************************************************************/
char * __cdecl strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ )
; /* Copy src over dst */
return( dst );
}