1,微软实现

C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\strcat.c

char * strcpy(char * dst, const char * src)
{
        char * cp = dst;

        while( *cp++ = *src++ )
                ;               /* Copy src over dst */

        return( dst );
}

2. 林锐《高质量C++/C编程指南》

#include <assert.h>
char *strcpy(char *strDest, const char *strSrc)
{ 

    assert((strDest!=NULL) && (strSrc !=NULL)); // 2分 

    char *address = strDest;                   // 2分 

    while( (*strDest++ = * strSrc++) != ‘/0’ )   // 2分 

       ; 

    return address ;                          // 2分 

}

附:

strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。 // 2分
例如 int length = strlen( strcpy( strDest, “hello world”) );


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐