簡體   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