1. 程式人生 > >strcpy與memcpy

strcpy與memcpy

文章目錄

strcpy

strcpy(dest,src) 把src地址開始且含有 null 結束符的字串複製到以 dest 開始的地址空間

char* strcpy(const char* strDest,const char* strSrc){
	assert(strDest != NULL && strSrc != NULL);
	char *address = strDest;
while((*strDest++ = *strSrc++) != '\0'); return address; }

memcpy

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

功能:從源src所指的記憶體的起始位置開始拷貝 n 個位元組到目標dest所指的記憶體地址的起始位置。函式返回指向dest的指標;

strcpy與memcpy區別

都是標準C庫函式,區別如下:

  1. 複製的內容不同
    strcpy只能複製字串,而memcpy可以複製任何內容,例如字元陣列、整型、結構體、類等,用途更廣
  2. 複製的方法不同
    strcpy不需要指定長度,遇到被複制的字串的結束符 ‘\0’ 時結束,所以容易溢位;mencpy則是根據第三個引數決定複製的長度
  3. 用途不同
    通常在字串複製時用strcpy,需要複製其他型別資料時用 memcpy