gpt4 book ai didi

在C中连接一个字符串然后重新分隔它

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

在 C 程序中,我采用 2 个命令行参数并将它们作为单个参数连接到函数,如下所示:

some_function(strcat(argv[1], argv[2]));

因此,如果我传递 arg1 和 arg2,则传递的结果是 arg1arg2

然后,在函数内部,我需要将它们重新分成 arg1 和 arg2。我尝试使用这样的 strtok() 函数(arg 是连接字符串):

source = strtok(arg, "\\");
destination = strtok(NULL, "\\");

但这似乎不起作用,因为连接的字符串 arg1arg2 存储在源中,而 null 存储在目标中。那么,我如何获得它,使源为 arg1,目标为 arg2?

最佳答案

解决您所说的问题的最简单的解决方案是将参数复制到一个新数组中。

char args[strlen(argv[1]) + strlen(argv[2]) + 1];
sprintf(args, "%s%s", argv[1], argv[2]);

或者,更传统的是:

char *args = malloc(strlen(argv[1]) + strlen(argv[2]) + 1);
sprintf(args, "%s%s", argv[1], argv[2]);
/* free args when you are through with it */

现在,argv[1]argv[2] 仍然是分开的。

关于在C中连接一个字符串然后重新分隔它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288066/

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