繁体   English   中英

在C中使用strcpy函数的优势

[英]Advantage of using strcpy function in C

void main()
{
    char s[100]="hello";
    char *t;

    t=(char*)malloc(100);
    strcpy(t,s);
}

或者,我们可以像这样将s分配给tt=s; 使用替代方法的缺点是什么?

当使用t = s这样的简单赋值时,您实际上并没有在复制字符串,而是使用两个不同的名称来引用相同的字符串。

如果分配t=s应用于t指向的存储块t=s每个更改都会影响s ,而这可能不是您想要的。

另外,您可能想看一下这篇文章

该变量的值t是一个或多个连续的位置 char秒。 当您执行t = s ,您将char s[0]的位置复制到t (并替换了来自malloc()t的旧值)。 t[0]s[0]指的是完全相同的字符-修改一个字符将对另一个字符可见。

使用strcpy(t, s) ,会将实际字符从一个位置复制到另一位置。

前者就像在同一个房子里放两个门牌。 后者就像在一个房子里精确复制所有家具,然后把它放到第二个房子里。

strcpy()函数用于将一个字符串复制到另一个字符串,您在这里误用了它。使用指针时,您可以很容易地做到这一点,

t=s;

指针't'获取字符串's'的基址,这就是指针的作用。另一方面,您进行strcpy工作。使指针存储了整个字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM