码迷,mamicode.com
首页 > 其他好文 > 详细

strcpy函数用法

时间:2018-11-21 12:16:55      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:修改   使用   ons   运行   移动   效果   用法   code   相同   

strcpy()是C中的一个复制字符串的库函数,在C++中现在编译器要求使用strcpy_s(),提高安全性,效果是一样的,只是防止源串的长度比目的串的长度大,导致最终的内存越界

函数声明及实现代码:

char* strcpy(char*dst, const char*src)
char* strcpy(char*dst, const char *src)
{
    if ((dst == NULL) || (src == NULL))
        return NULL;
    char *ret = dst;  //[1]
    while ((*dst ++= *src++) != ‘\0‘);   //[2]
        return ret;   //[3]
}

1)const 修饰:源字符串参数用const修饰,防止修改源字符串;

(2)空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查;

(3)为什么要设置ret 指针以及返回ret指针的位置[3],由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针;

(4)以上所示[2]处,为简单的字符串的复制过程,正好表明strcpy函数遇到‘\0‘将会停止;

(5) [3]处返回指针类型,是因为可以连续赋值,作为左值

在C++中strcpy运行时,会提示不安全,要想实现同样的功能,需要自己把该功能换一个名字实现相同的代码,调用strcpy_s时,类似于赋值,直接把目的字符串的换成了源字符串,目的字符串后面的字符无法再通过数组下标获取到,这点很奇怪,不知道是哪里出了问题?

strcpy函数用法

标签:修改   使用   ons   运行   移动   效果   用法   code   相同   

原文地址:https://www.cnblogs.com/ymd12103410/p/9993867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!