strcpy函數的原型:char* strcpy(char* dest, const char* src);
memcpy函數的原型:void *memcpy( void *dest, const void *src, size_t count );
memset函數的原型:memset(void *s, int ch,size_t n);
strcpy,memcpy和memset主要有以下三點區別:
a.複製內容不同,strcpy只能複製字符串,而memcpy可以複製任一內容,比如整形、結構體等。所以在複製字符串時會用strcpy(因爲效率原因),而複製其他類型數據一般會用memcpy。
b.從參數可以看出複製方法也不盡相同。strcpy不需要指定特定長度,遇到“\0”纔會結束,所以使用不當容易造成溢出。memcpy則是根據第三個參數決定複製長度。
c.將s中當前位置後面的n個字節用 ch 替換並返回 s,作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零的一種快速操作。