【问题标题】:Copy results of strtok to 2 strings in C将strtok的结果复制到C中的2个字符串
【发布时间】:2011-02-01 04:34:50
【问题描述】:

好的,我有代码

字符 * 令牌; 字符 * 分隔符 = " "; 令牌 = strtok(命令,分隔符); strcpy(命令,令牌); token = strtok(NULL, 分隔符); strcpy(参数,令牌);

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

【问题讨论】:

标签: c strtok strcpy


【解决方案1】:

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

你可以这样做:

char *command_tok, *args_tok;

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

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

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多