已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy相关的知识,希望对你有一定的参考价值。

已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。

/*
编写strcpy函数(10分)
已知strcpy函数的原型是
??? char *strcpy(char *strDest, const char *strSrc);
??? 其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了 实现链式表达式。??????????????????????????? // 2分
例如??? int length = strlen( strcpy( strDest, “hello world”) );
*/

#include <assert.h>
#include <stdio.h>
char*strcpy(char*strDest, constchar*strSrc)
{
??? assert((strDest!=NULL) && (strSrc !=NULL));?????
??? char* address = strDest;

??? while (*strDest != ‘\0‘){? // equal to "//while((*strDest++=*strSrc++)!=‘\0‘);"
??????????? *strDest = *strSrc;
??????????? strSrc ++;
??????????? strDest ++;
??????? }      
??? return address ;???????????????????????????????    
}

Note:(*strDest++=*strSrc++) 的返回值为子表达式的左值,即strDest

?

?

以上是关于已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy的主要内容,如果未能解决你的问题,请参考以下文章

strcpy函数的实现

代码题(63)— 字符串拷贝

百战c++

百战c++

百战c++

memcpy函数strcpy函数strncpy函数