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”) );
本文详细解析了C语言中字符串复制函数strcpy的两种实现方式,一种来自微软的实现,另一种则出自林锐的《高质量C++/C编程指南》。通过对这两种实现方式的对比分析,不仅介绍了strcpy的基本用法,还探讨了为何该函数需要返回char*类型指针的原因,即为了支持链式调用。
467

被折叠的 条评论
为什么被折叠?



