複製 src (含 \0) 到 dest,回傳 dest。呼叫者保證 dest 空間足夠。
char *my_strcpy(char *dest, const char *src) {
char *ret = dest;
while ((*dest++ = *src++)) ; // 賦值結果作為條件,\0 為 0 結束
return ret;
}
char *my_strcpy2(char *dest, const char *src) {
int i = 0;
while (src[i]) { dest[i] = src[i]; i++; }
dest[i] = '\0';
return dest;
}
char *my_strcpy_rec(char *dest, const char *src) {
if (*src == '\0') { *dest = '\0'; return dest; }
*dest = *src;
return my_strcpy_rec(dest+1, src+1);
}
\0,否則 dest 非合法字串。memmove)。strncpy/snprintf/strlcpy。