gpt4 book ai didi

C编程: how to fill an array?

转载 作者:行者123 更新时间:2023-11-30 14:20:59 25 4
gpt4 key购买 nike

我知道 strncpy(s1, s2, n) 将 s2 的 n 个元素复制到 s1 中,但这只是从 s1 的开头填充它。例如

s1[10] = "Teacher"
s2[20] = "Assisstant"
strncpy(s1, s2, 2) would yield s1[10] = "As", correct?

现在如果我希望 s1 包含“TeacherAs”怎么办?我该怎么做呢? strncpy 适合在这种情况下使用吗?

最佳答案

您可以使用strcat()连接字符串,但是在这种情况下您不希望复制所有源字符串,因此您需要使用类似以下内容的内容:

size_t len = strlen(s1);
strncpy(s1 + len - 1, s2, 2);
s2[len + 2] = '\0';

(添加终止nul;感谢@FatalError)。

这非常可怕,您需要担心目标数组中剩余的空间量。请注意,如果 s1 为空,代码将会崩溃!

部分系统下有strncat() ( manpage ),使用起来比较简单:

strncat(s1, s2, 2);

关于C编程: how to fill an array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985138/

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