将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_tok
和args_tok
指向初始字符串的命令和参数部分,假设它正确解析。 请注意,它们指向command
缓冲区的某些部分,并且没有自己分配的内存。 您可以安全地从它们复制到其他缓冲区。