gpt4 book ai didi

在C中复制字符串的一部分

转载 作者:太空狗 更新时间:2023-10-29 17:14:00 26 4
gpt4 key购买 nike

这看起来应该非常简单,但出于某种原因,我没有让它工作。我有一个名为 seq 的字符串,它看起来像这样:

ala
ile
val

我想把前 3 个字符复制到另一个字符串中。我使用命令:

memcpy(fileName, seq, 3 * sizeof(char));

这应该使 fileName = "ala",对吧?但出于某种原因,我得到了 fileName = "ala9"。我目前正在解决这个问题,只是说 fileName[4] = '\0',但想知道为什么我会得到 9。

注意:将 seq 更改为

ala
ile
val
ser

并重新运行相同的代码,fileName 变为 "alaK"。不再是 9,但仍然是一个错误字符。

最佳答案

C 使用空终止符来表示字符串的结尾。 memcpy 不知道您正在复制字符串(它只是复制字节),所以它不想放一个。您的解决方法实际上是正确的答案。

编辑:wolfPack88 有一个很好的观点。您确实需要更改文件名 [3]。此外,以下评论提出了一些关于 strncpy 的重要观点,这也是一个值得学习的选择。

关于在C中复制字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3001552/

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