一、问题描述
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
二、问题求解
(1)代码
#include<iostream>
#include<stdio.h>
using namespace std;
char *strcpy(char *strDest, const char *strSrc)
{
if((strDest==NULL) || (strSrc==NULL))
{
return NULL;
}
char *address=strDest;
while((*strDest++ = *strSrc++) != '0')
{
NULL;
}
return address;
}
int main()
{
char *strSrc="abc";
char *strDest=new char[20];
cout<<strSrc<<endl;
strDest = strcpy(strDest, strSrc);
cout<<strDest<<endl;
return 0;
}
(2)答:为了实现链式表达式。
例如 int length = strlen( strcpy( strDest, “hello world”) );