您的位置:首页 > 其它

strcpy和memcpy的区别与实现

2014-10-22 17:37 519 查看
一、区别

(1)内容:strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等

(2)方法:strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度

(3)用途:通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

二、实现(编程风格;出错处理;算法复杂度分析(用于提高性能))

(1)注意编程风格。比如,使用dst、src这样增强可读性的名字。

(2)使用断言来检验输入参数的有效性。

(3)使用const来约束src,表明src对应的内容不能被修改。

(4)返回dst,以便实现链式表达式这样的机制。
char  *strcpy(char   *strDest,   const   char   *strSrc);

{           //使用断言来检验输入参数的有效性。
         assert((strDest!=NULL)   &&  (strSrc !=NULL));

        char   *address   =   strDest;

        while((*strDest++   =   *  strSrc++)  !=   ‘\0’ );
        return   address   ;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcpy strcpy