strcpy與memcpy
阿新 • • 發佈:2018-11-15
文章目錄
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庫函式,區別如下:
- 複製的內容不同
strcpy只能複製字串,而memcpy可以複製任何內容,例如字元陣列、整型、結構體、類等,用途更廣 - 複製的方法不同
strcpy不需要指定長度,遇到被複制的字串的結束符 ‘\0’ 時結束,所以容易溢位;mencpy則是根據第三個引數決定複製的長度 - 用途不同
通常在字串複製時用strcpy,需要複製其他型別資料時用 memcpy