strcpy和strncpy的區別

2021-05-23 11:16:05 字數 587 閱讀 3785

strcpy  

原型:char *strcpy(char *restrict s1, const char *restrict s2);

用法:#include

功能:把s2所指由null結束的字串複製到s1所指的陣列中。

說明:s1和s2所指記憶體區域不可以重疊且s1必須有足夠的空間來容納s2的字串。返回指向s1的指標。

strncpy  

原型:char *strncpy(char *restrict s1, const char *restrict s2, size_t n);

用法:#include

功能:把s2所指由null結束的字串複製到s1所指的陣列中,最多複製n個字元

說明:如果s2的長度不超過n,將在s1的後面新增null byte。

主要區別:

1,strncpy

從某種意義上說,

是安全的。只要n的長度不超過s1分配的實際長度,就不會造成記憶體越界。即使s2的長度超過n。

2,strncpy會在s1的尾部自動新增null字元,如果n不超過s1的長度。

其他帶n的本簇函式也和strncpy的意義差不多

strcpy和strncpy的區別

第一種情況 1 2 3 4 char p how are you char name 20 abcdefghijklmnopqrs strcpy name,p name改變為 how are you 正確!strncpy name,p,sizeof name name改變為 how are you ...

strncpy 和strcpy的區別

1.strcpy函式 顧名思義字串複製函式 原型 extern char strcpy char dest,char src 功能 把從src位址開始且含有null結束符的字串賦值到以dest開始的位址空間,返回dest 位址中儲存的為複製後的新值 要求 src和dest所指記憶體區域不可以重疊且d...

strcpy 和 strncpy的區別

strcpy 字串複製 原型 char strcpy char dest,char src 功能 把src所指由 0 結束的字串複製到dest所指的陣列中。說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。返回指向dest的指標。注意 當src串長度 des...