strcpy 和 strncpy 函式的使用

2021-07-31 15:40:48 字數 1115 閱讀 2226

strcpy 和strcnpy函式——字串複製函式

其一般形式為

strcpy (字元陣列1,字串2);

strcpy是stringcopy(字串複製)的簡寫。它表示「字串複製函式」,作用是將字串2複製到字元陣列1中去。例如:

char str [ 10 ] , str [ ] = "china";

strcpy ( str1 , str2 );

執行後,str1的狀態如下:

'c' , 'h' , 'i' , 'n' , 'a' , '\0' , '\0' , '\0' , '\0' , '\0'

說明:(1)字元陣列1必須定義得足夠大,以便容納被複製的字串2.字元陣列1的長度不應小於字串2的長度。

(2)「字元陣列1」必須寫成陣列名形式(如str1),「字串2」可以是字元陣列名,也可以是乙個字串常量。例如:

strcpy ( str1 , "china" );

作用與前面相同。

(3)如果下複製前未對str1陣列初始化或賦值,則str1各位元組中的內容是無法預知的,複製時將str2中的字串和其後的'\0'一起複製到字元陣列1中,取代字元陣列1中的前面6個字元,最後4個字元不一定是'\0',而是str1中原有的最後4個位元組的內容。

(4)不能用賦值語句將第乙個字串常量或字元陣列直接給乙個字元陣列。如下面兩行都是不合法的:

str1 = "china";

str1 = str1;

只能用strcpy函式將乙個字串複製到裡乙個字元陣列護送去。用賦值語句只能講乙個字元賦給乙個字元型變數或字元陣列元素。如下面的語句是合法的:

char a [ 5 ] , c1 , c2;

c1 = 'a';

c2 = 'b';

a [ 0 ] = 'c'; a [ 1 ] = 'h'; a [ 2 ] = 'i'; a [ 3 ] = 'n'; a [ 4 ] = 'a';

(5)可以用strnpy函式將字串2中前面n個字元複製到字元陣列1中去。例如:

strcnpy ( str1 , str2 , 2);

作用是將str2中最前面2個字元複製到str1中,取代str1中原有的最前面2個字元。但是複製的字元個數n應不多於str2中原有的字元(不包括'\0')。

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

strcpy和strncpy函式實現

原型宣告 char strcpy char dest,const char src 標頭檔案 include 和 include 功能 把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間 說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字...