strcpy與strcpy_s
阿新 • • 發佈:2019-02-11
strcpy
C語言標準庫函式,包含標頭檔案:#include<stdio.h> #include<string.h>
實現:
char *strcpy(char *des, const char *source)
{
char *r = des;
assert((des!=NULL) && source!=NULL);
while((*r++ = *source++) != '\0'); //賦值表示式返回左運算元,所以在'\0'後,迴圈停止
return des';
}
使用時注意:若陣列長度不足以容納整個字串,則會導致程式出現不可預知的錯誤。
strcpy_s
與strcpy的功能幾乎是一樣的。
區別:strcpy無法保證有效的緩衝區尺寸,只能確保使用了足夠大的緩衝區,而strcpy_s則可以避免以上行為。
有兩個引數和三個引數兩種型別。
三個引數時:
errno_t strcpy_s(char *strDestination, size_t numberofElements, const char *strSource){}
兩個引數時:
errno_t strcpy_s(char (&strDestination)[size], const char *strSource){}//C++ only