一般寫法:
char *my_strcpy(char *dst,const char *src)
可以看到很簡單,只需考慮三點。
1,判斷源字串和目的字串是否為空
2,現將目的位址指標儲存起來,方便輸出
3,遍歷原位址和目的位址,乙個字元乙個字元的複製,包括末尾的
但是上面的實現有問題,沒有考慮到記憶體重合的情況。原位址src和目的位址dst所在記憶體有下面三種情況。
對於1和3的情況,不影響。雖然1也有重疊,但是重疊部分不會破壞源字串內容。
對於,第二種情況,可以按照從後往前拷貝源字串內容到目的字串的思路進行處理。
void *do_copy(void *dst, const void *src, unsigned int count)
} else //源位址和目的位址重疊,高位元組向低位元組拷貝
}return ret;
}char *do_strcpy(char *dst, const char *src)
實現自己的字串拷貝函式Strcpy
strcpy是c語言的庫函式,用於完成字串的拷貝,很多筆試面試過程中要求我們自己實現這個函式。字串拷貝本身並沒有太多技巧,可以利用最後的 0 作為界限,用迴圈完成拷貝,如下 char strcpy char strdst,const char strsrc 迴圈複製 while strdst str...
字串拷貝函式
1.strcpy函式 顧名思義字串複製函式 一般函式原型實現方式 該函式的引數是字元指標,也就是可以是字串變數和字元陣列,因為它們的變數名代表首字元位址。字串預設有乙個null結束符,字元陣列沒有。所以此處需要注意 因為src要求有null結束符,所以字元陣列的長度必須大於等於src包含null結束...
自己實現的字串操作函式
自己編寫實現字串相關的函式 包括四個基礎的字串操作函式strlen strcpy strcmp strcat 以及擴充套件的strstr 還有兩個操作記憶體的memcpy memmove define crt secure no warnings include include include 求字...