gpt4 book ai didi

C:从分隔的源字符串创建字符串数组

转载 作者:太空狗 更新时间:2023-10-29 15:01:32 25 4
gpt4 key购买 nike

在 C(而非 C++)中将定界字符串转换为字符串数组的有效方法是什么?例如,我可能有:

char *input = "valgrind --leak-check=yes --track-origins=yes ./a.out"

源字符串总是只有一个空格作为分隔符。我想要一个由 malloc 字符串 char *myarray[] 组成的 malloc 数组,这样:

myarray[0]=="valgrind"
myarray[1]=="--leak-check=yes"
...

编辑 我必须假设 inputString 中有任意数量的标记,所以我不能将它限制为 10 个或其他数量。

我曾尝试使用 strtok 和我已实现的链表来解决一个困惑的解决方案,但 valgrind 提示太多以至于我放弃了。

(如果您想知道,这是我正在尝试编写的基本 Unix shell。)

最佳答案

什么是这样的:

char* string = "valgrind --leak-check=yes --track-origins=yes ./a.out";
char** args = (char**)malloc(MAX_ARGS*sizeof(char*));
memset(args, 0, sizeof(char*)*MAX_ARGS);

char* curToken = strtok(string, " \t");

for (int i = 0; curToken != NULL; ++i)
{
args[i] = strdup(curToken);
curToken = strtok(NULL, " \t");
}

关于C:从分隔的源字符串创建字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2170319/

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