strncpy與strcpy的區別與注意事項

2021-07-01 22:14:34 字數 604 閱讀 1693

strncpy

是 c語言

的庫函式之一,來自 c語言標準庫,定義於 

string.h

,char *strncpy(char *dest, char *src, int n),把src所指字串的前n個位元組複製到dest所指的陣列中,並返回指向dest的指標。

strcpy只是複製字串,但不限制複製的數量,很容易造成緩衝溢位。strncpy要安全一些。

strncpy能夠選擇一段字元輸出,strcpy則不能。例如:

char name=,dest[20]={};

strncpy(dest,name,9);

printf("%s\n",dest);

strncpy可實現strcpy的字串複製:

char name=,dest[20]={};

strncpy(dest,name,sizeof(name));

printf("%s\n",dest);

注意在以上的**中

dest[20]={};後面的{}不能缺少,否則會出現錯誤,而strcpy時可以不加{}原因是strcpy會複製src的'\0'

strcpy與strncpy的區別

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

strcpy和strncpy的區別

strcpy 原型 char strcpy char restrict s1,const char restrict s2 用法 include 功能 把s2所指由null結束的字串複製到s1所指的陣列中。說明 s1和s2所指記憶體區域不可以重疊且s1必須有足夠的空間來容納s2的字串。返回指向s1的...

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 ...