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”) );