将strtok的结果复制到C中的2个字符串

好的,所以我有代码

 char * token;
 char * delimiter =“”;

 token = strtok(command,delimiter);

 strcpy(命令,令牌);

 token = strtok(NULL,delimiter);
 strcpy(arguments,token);

当我运行它时它给了我EXC_BAD_ACCESS,是的,命令和参数已经定义了。

在解析command时,为什么要将令牌复制到command ? 这是一件非常不安全的事情。

你可以做:

 char *command_tok, *args_tok; command_tok = strtok(command, delimiter); args_tok = strtok(NULL, delimiter); 

现在command_tokargs_tok指向初始字符串的命令和参数部分,假设它正确解析。 请注意,它们指向command缓冲区的某些部分,并且没有自己分配的内存。 您可以安全地从它们复制到其他缓冲区。