gpt4 book ai didi

混淆使用strtok

转载 作者:太空狗 更新时间:2023-10-29 15:27:22 24 4
gpt4 key购买 nike

我正在使用 strtok 并且有点困惑。

我有一个包含很多字符串的数组,我想将这些字符串标记为一个临时数组。当我执行 strtok 时,它将第一个标记存储在临时数组中,但也更改了原始数组值。所以我很困惑。

char cmdTok[10] , *cmd = cmdTok;
printf("command[0] = %s\n", commands[0]);
cmd = strtok(commands[0], " \n\0");
printf("command[0] after strtok = %s\n", commands[0]);

正在输出

command[0] = #Draw A Ring
command[0] after strtok = #draw

如何在命令中保留原始值?

最佳答案

对字符串的副本执行 strtok

char *copy = strdup(commands[0]);
cmd = strtok(copy, " \n");
/* ... */

free(copy);

如果你没有/想使用strdup:

char *copy = malloc(strlen(commands[0]) + 1);
strcpy(copy, commands[0]);
/* ... */

关于混淆使用strtok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047345/

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