gpt4 book ai didi

c - 加载按分隔符分隔的字符串到数组

转载 作者:行者123 更新时间:2023-11-30 16:36:27 24 4
gpt4 key购买 nike

我有一个数组,需要用如下所示的字符串中的值填充:

value0;value1;value2;value3;\n

我尝试使用 strtok() 但无法真正弄清楚如何正确地将 2 个以上的元素加载到表中。

所需的输出类似于

arrayValues[0] = value0;
arrayValues[1] = value1;

等等

最佳答案

您需要使用 strtok() 和 realloc()。两者都有点难以使用

char input[] = "value0;value1;value2;value3\n";
char **arrayValues = NULL;
int N = 0;
char *token = strtok(input, ";");

while(token != 0)
{
N++;
arrayValues = realloc(arrayValues, N * sizeof(char *));
if(!arrayValues)
/* out of memory - very unlikely to happen */
arrayValues[N-1] = strdup(token);
token = strtok(NULL, ";");
}

/* print out to check */
for(i=0;i<N;i++)
printf("***%s***\n", arrayValues[i]);

请注意分隔符“;”被覆盖,如果您按照指定保留它,则必须将其添加到字符串的末尾,这很繁琐,而且可能不是您真正想要的。

关于c - 加载按分隔符分隔的字符串到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48488927/

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