在C中使用strcpy函数的优点

时间:2010-12-08 17:38:54

标签: c pointers strcpy

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

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

或者,我们可以将s分配给t,如下所示:t=s;。使用替代方案的缺点是什么?

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

另外,您可能需要查看this post

答案 2 :(得分:1)

变量t的值是一个或多个连续char位置。当您执行t = s时,您将字符s[0]的位置复制到t(并替换来自t的{​​{1}}的旧值)。 malloc()t[0]现在指的是完全相同的字符 - 通过另一个字符可以看到修改字符。

使用s[0]时,您将实际字符从一个位置复制到另一个位置。

前者就像把两个门牌号放在同一栋房子里。后者就像制作一个房子里所有家具的精确复制品并将其放入第二个房间。

答案 3 :(得分:0)

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

t=s;

指针't'获取字符串's'的基地址,这就是指针的用途。另一方面,strcpy work.You指针存储整个字符串。