工作上要用到這些函數,稍微理解了一下這些函數的分別,寫一篇簡短的隨筆:
1、char *strcpy(char *dest, char *src); 這個函數把src所指由'\0'結束的字符串復制到dest所指的數組中。 src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。 當src串長度>dest串長度時,程序仍會將整個src串復制到dest區域,可是dest數組已發生溢出。
2、char * strncpy(char *dest, char *src, size_t,n); 將字符串src中最多n個字符復制到字符數組dest中(它並不像strcpy一樣遇到NULL才停止復制,而是等湊夠n個字符才開始復制),返回指向dest的指針。
3、void *memcpy(void *dest, const void *src, size_t n);由src指向地址為起始地址的連續n個字節的數據復制到以dest指向地址為起始地址的空間內。.source和destin所指內存區域不能重疊,函數返回指向destin的指針。 與strcpy相比,memcpy並不是遇到'\0'就結束,而是一定會拷貝完n個字節。 如果目標數組destin本身已有數據,執行memcpy()後,將覆蓋原有數據(最多覆蓋n)。如果要追加數據,則每次執行memcpy後,要將目標數組地址增加到你要追加數據的地址。