strcpy的函式式為:strcpy(dst,src),因為char陣列最後以』\0』為結尾,所以需要注意的是如果strlen(src)>strlen(dst)時,則最後的』\0』無法複製,則會導致出錯,即dst的大小至少要等於src的大小,保證strcpy能複製最後的』\0』。
strncpy的函式式為:strcpy(dst,src,n),即將src的前n個字元複製給dst,如果dst本來就有內容,並且本次拷貝的字元中不包含』\0』,則內容會連在一起,舉個栗子:
char dst="hello world";
strncpy(dst,"ab",2);
輸出的結果是abllo world,對於strncpy要注意的是當n< strlen(src)時,同樣會不能複製』\0』,如果n>strlen(src),則可以正確複製。同樣這裡也要這dst的大小於n的大小的關係。建議在初始化字串陣列時使用char str=。
總的來說,strcpy用來複製字串,如果dst長度足夠,其會拷貝最後的結尾符』\0』,而strncpy是用來拷貝字元的,只拷貝固定的字元個數,如果包含了』\0』則拷貝並在此結束,且需要dst大小足夠用來儲存,如果不包含』\0』,則不拷貝。
c++中map如何通過key得到value:
iter = map.find(key);
if(iter!=map.end())
return null;
字元陣列轉化成string型別:
char str = "test";
string s(ch);
string s = str;//string s; s=str;也可用於加法
將string型別轉換為字元陣列:
char buffer[5];
string s("test");
len = s.copy(buffer, 4);
buffer[len] = '\0';
或者
char buffer[5];
string s("test");
strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 5);
C strcpy和strncpy用法和區別
ifndef null ifdef cplusplus define null 0 else define null void 0 endif endif strcpy函式 顧名思義字串複製函式 原型 extern char strcpy char dest,char src 要求 src和dest...
strcpy與strncpy的區別
原型 char strcpy char dest,char src 功能 把src所指由 0 結束的字串複製到dest所指的陣列中。說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。返回指向dest的指標。注意 當src串長度 dest串長度時,程式仍會將整...
strncpy與strcpy的區別與注意事項
strncpy 是 c語言 的庫函式之一,來自 c語言標準庫,定義於 string.h char strncpy char dest,char src,int n 把src所指字串的前n個位元組複製到dest所指的陣列中,並返回指向dest的指標。strcpy只是複製字串,但不限制複製的數量,很容易...