我正在尝试编写一个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可以这样做,如果是,请提供一个例子。
答案 0 :(得分:0)
如果您知道字符串的长度和所述字符串的数量都不会超过某个值,您可以这样做:
char Strings[NUMBER_OF_STRINGS][MAX_STRING_LENGTH + 1]; // for the null terminator
将所有这些记忆归零是一个好习惯:
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]));