编写 strcpy 函数
已知 strcpy 函数的原型是
Char *strcpy(char *strDest,const char *strSrc);
其中 strDest 是目的字符串, strSrc 是源字符串。
(1) 不调用 c++ 、 /c 的字符串库函数,请编写函数 strcpy
(2) Strcpy 能把 strSrc 的内容复制到 strDest ,为什么还要 char * 类型的返回值?
char *strcpy(char *strDest, const char *strSrc) { if (strDest == NULL || strSrc == NULL) return NULL; char *tmp = strDest; while (*strSrc != '\0') { *tmp++ = *strSrc++; } return strDest; } Strcpy 能把 strSrc 的内容复制到 strDest ,还要 char * 类型的返回值是为了增加灵活性,支持链式表达,例如 int length = strlen( strcpy(str, “Hello World”) );
(1) char * strcpy ( char * strDest , const char * strSrc )
{
assert (( strDest != NULL ) && ( strSrc != NULL )); //这个必须要啊,判断指针是否为空
char * address = strDest ;
while ( (* strDest ++ = * strSrc ++) != '\0' )
NULL ;
return address ;
}
( 2 ) strcpy 能把 strSrc 的内容复制到 strDest ,为什么还要 char * 类型的返回值?
答:为了 实现链式表达 式。
例如 int length = strlen( strcpy( strDest, “hello world”) );