1. 程式人生 > >strcpy、sprintf、memcpy的區別

strcpy、sprintf、memcpy的區別

使用 orm des 內存拷貝 font 行數據 現在 mat 空間

char*strcpy(char *dest, const char *src);

其對字符串進行操作,完成從源字符串到目的字符串的拷貝,當源字符串的大小大於目的字符串的最大存儲空間後,執行該操作會出現段錯誤。

int sprintf(char*str, const char *format, ...)

函數操作的源對象不限於字符串:源對象可以是字符串、也可以是任意基本類型的數據。主要是實現將其他數據類型轉換為字符串

void *memcpy(void*dest, const void *src, size_t n)

實現內存的拷貝,實現將一塊內存拷貝到另一塊內存。該函數對源對象與目的對象沒有類型現在,只是對內存的拷貝

但是在軟件升級中,當接收到網絡傳送的升級內容後,進行數據拷貝時,最好使用memcpy來進行數據的拷貝。因為strcpy、sprintf進行拷貝時,當檢查到源字符串中有’\0’即ascii碼為00)時,即認為數據結束符,就會停止拷貝

strcpy、sprintf、memcpy的區別