memcpy和strcpy函式實現

2021-08-20 07:45:59 字數 940 閱讀 6613

函式原型:void *memcpy(void dest, const void src, size_t n);

思路:先將void轉化為char,然後按位賦值。memcpy不會按照『\0』來判斷字串拷貝。

void

*memcpy

(void

* dest,

const

void

* src,size_t len)

return dest;

}

strcpy函式

函式原型:char* strcpy(char* dest, const char* src)

char

*strcpy

(char

* dest,

const

char

* src)

char

* p = dest;

while

(*src !=

'\0'

)return dest;

}

簡寫:

char

*strcpy

(char

* dest,

const

char

* src)

為了實現鏈式操作,將目的位址返回。

strcpy函式拷貝結束條件是判斷最後一位是否是』\0』。所以下面的**:

char s1[3];

char s2[3];

for(int i=0; i<3; ++i)

strcpy(s2, s1);

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

無法對s2正確賦值,列印出來的是aaa)ÿ,三個a賦值成功,但是最後一位是亂碼,這樣賦值是有問題的。

陣列複製函式memcpy和strcpy

strcpy和memcpy主要有以下3方面的區別。1 複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列 整型 結構體 類等。2 複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符 0 才結束,所以容易溢位。memcpy則是根據其第3個引數決定...

strcpy函式與memcpy函式

strcpy函式與memcpy函式 6.2 字串與陣列 字串一般是用字元陣列的方式儲存,例如下面的str定義 char str 123456 這裡str是乙個字元陣列,它存放了乙個字串 123456 由於字串還有乙個結束符 0 所以此陣列的長度為7而不是6。6.2.1 strcpy函式與memcpy...

strcpy函式與memcpy函式

strcpy函式與memcpy函式 6.2 字串與陣列 字串一般是用字元陣列的方式儲存,例如下面的str定義 char str 123456 這裡str是乙個字元陣列,它存放了乙個字串 123456 由於字串還有乙個結束符 0 所以此陣列的長度為7而不是6。6.2.1 strcpy函式與memcpy...