gpt4 book ai didi

c - 在 C 中模拟可附加数组...有点

转载 作者:行者123 更新时间:2023-11-30 19:42:57 25 4
gpt4 key购买 nike

我正在尝试编写一个 C 代码来完成我编写的一段 Python 代码的功能。

我试图使其所有行保持简单,但结果仍然有一些我写的东西是 C 无法做到的。

我的代码将采用坐标数组并随着时间的推移替换/添加项目到该数组。

例如:

[[[0,1]],[[2,1],[1,14]],[[1,1]]] ==> [[[0,1]],[[2,1],[1,14],[3,2]],[[1,1]]]

[[[0,1]],[[2,1],[1,14]],[[1,1]]] ==> [[[0,1]],[[40]],[[1,1]]]

我认为这在 C 中是不可能的,但是使用字符串来表示列表以便将它们添加到列表中怎么样?像这样:

[['0$1$'],['2$1$1$14$'],['1$1$']] ==> [['0$1$'],['2$1$1$14$3$2'],['1$1$']]

[['0$1$'],['2$1$1$14$'],['1$1$']] ==> [['0$1$'],['40$'],['1$1$']]

在我的代码中,我知道数组中的每个数组要么是一对或多对数字,要么只是一个数字,因此此方法适合我。

C 可以做到这一点吗?如果可以,请提供一个例子。

最佳答案

如果你知道字符串的长度和字符串的数量都不会超过某个值,你可以这样做:

字符字符串[NUMBER_OF_STRINGS][MAX_STRING_LENGTH + 1];//空终止符

将所有这些内存归零是一个很好的做法:

for (size_t i = 0; i < NUMBER_OF_STRINGS; i++)
memset(Strings[i], 0, MAX_STRING_LENGTH + 1);


如果要附加字符串,请使用 strcat:

strcat(Strings[i], SourceString);

一个更安全的解决方案(尽管稍微成本更高,因为您需要调用 strlen 来遍历整个字符串)解决方案是:

strncat(Strings[i], SourceString, MAX_STRING_LENGTH - strlen(Strings[i]));

关于c - 在 C 中模拟可附加数组...有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30278043/

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