您的位置:首页 > 其它

编写strcpy函数

2016-05-16 13:55 351 查看
已知strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc);

(1)不调用C++/C的字符串库函数,请编写函数

char *strcpy(char *strDest, const char *strSrc);

{

assert((strDest!=NULL) && (strSrc !=NULL)); // 2分

char *address = strDest; // 2分

while( (*strDest++ = * strSrc++) != ‘\0’ ) // 2分

NULL ;

return address ; // 2分

}

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。 // 2分

例如 int length = strlen( strcpy( strDest, “hello world”) );

否则就要这样写,,写成好几句了:

char strDest[12];

strcpy( strDest, “hello world”);

int length = strlen(strDest);

而这种直接返回char *的手段,就是为了后来函数调用者方便而设计的.不用你这么麻烦用上述方法去使用了,而直接可以使用拷贝后的dest字符串了.这种方便的实现方法,看起来就是链子链在一起的,所以称为 链式表达式

(3) 思考一下,为什么不能直接return strDest呢?非要去定义一个address?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: