明确strcpy和strcat的功能
- strcpy : strcpy 函数将 strSource(包括终止空字符)复制到 str目的地指定的位置。复制或追加字符串时,不执行溢出检查。如果源字符串和目标字符串重叠,则未定义 strcpy 的行为。
- strcat : strcat 函数将 strSource 追加到 strTototo,并终止具有 null 字符的结果字符串。strSource 的初始字符覆盖 str目的地的终止空字符。复制或追加字符串时,不执行溢出检查。如果源字符串和目标字符串重叠,则 strcat 的行为未定义。
具体实现
void MyStrcpy(char dest[], char src[]){
while (*dest++ = *src++ ){//从 src 和 dest 起始位置开始复制,当 *dest 为 '\0' 时,复制并结束循环
;
}
}
int main () {
char dest[20] = { "abcdef" };
char src[20] = { "haha" };
MyStrcpy(dest, src);//把 dest 拷贝到 src
return 0;
}
void MyStrcat(char dest[], char src[]){
while (*dest != '\0'){//执行到 *dest == '\0' 结束
dest++;
}
while (*src != '\0'){//执行到 *src == '\0' 结束
*dest = *src;
dest++;
src++;
}
*dest = '\0';//要把 '\0' 赋值给 dest
}
int main () {
char dest[20] = { "abcdef" };
char src[20] = { "haha" };
MyStrcat(dest, src);
return 0;
}