原型:
C庫string.h中strcpy函數
描述:
C 庫函數 char *strcpy(char *dest, const char *src) 把 src 所指向的字元串複制到 dest。
參數:
dest指向用于存儲複制内容的目标數組。src指向要複制的字元串。
傳回值:
傳回一個指向最終的目标字元串dest的指針。
模拟實作strcpy:
char *my_strcpy(char *dest, const char *src)
{
char *start= dest;
assert(NULL != dest);
assert(NULL != src);
while (*dest++ = *src++)//一直向後移動,當*src指向'\0'停止。
;
return start;
}
原型:
C庫函數string.h中strncpy函數
描述:
C 庫函數 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字元串複制到 dest,最多複制 n 個字元。當 src 的長度小于 n 時,dest 的剩餘部分将用空位元組 填充。
參數:
dest:指向用于存儲複制内容的目标數組。
src:指向要複制的字元串。
n:要從源中複制的字元數。
傳回值:
傳回一個指向最終的目标字元串dest的指針。
模拟實作strncpy:
char *my_strncpy (char * dest, const char * src, size_t n)
{
char *start = dest; //儲存dest值,在函數結束後傳回
while (n && (*dest++ = *src++))//一直拷貝,直到n為0或src全部拷貝完畢
n--;
if (n) //如果count>0,表示src長度小于等于n,需要給dest添加空位元組
while (--n) //使用前置--,是因為在跳出while循環後,count少減一次
*dest++ = '\0';
return start;
}