[英]Advantage of using strcpy function in C
void main()
{
char s[100]="hello";
char *t;
t=(char*)malloc(100);
strcpy(t,s);
}
或者,我们可以像这样将s
分配给t
: t=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.