gpt4 book ai didi

c - 重现 strcpy 的行为

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:58 29 4
gpt4 key购买 nike

我试图在 c 中重现 strcpy 的行为,我的问题是该函数有效但它在末尾附加了额外的东西。

char    *ft_strcpy(char * dst, const char * src)
{
int i;
i = 0;
while (src[i] != '\0') {
dst[i] = src[i];
i++;
}
return dst;
}

当我运行它时,我得到以下信息。

int main()
{
char p[] = {};
char z[] = "Hello World";
ft_strcpy(p,z);
printf("%s\n", p);
return 0;
}

function results

最佳答案

您没有复制 nul 终止符,所以 printf 不知道要停止。

只需在循环后添加dst[i] = 0;

此外,您还没有为 p 分配任何空间,因此您将获得未定义的行为。对于第一个测试,只需执行类似 char p[100]; 的操作,并确保 z 的长度永远不会超过 99 个字符。最终你需要一个更好的修复,但这会让你开始。

关于c - 重现 strcpy 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282967/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com