在C中strtok可以多次使用delim吗?

时间:2017-03-29 04:19:22

标签: c strtok

有没有办法比strtok更多地使用delim?我只能让代码适用于load或init,但不能同时使用。示例代码,其中strtok用于以load#或init#,#,方向的形式来标记用户的输入:

if ((tok = strtok(choice, " ")) && strcmp(tok, COMMAND_LOAD) == 0){
    tok = NULL;
    if((tok = strtok(tok, " ")) != NULL){
    /*some code*/
    }
}
else if((tok = strtok(choice, " ")) && strcmp(tok, COMMAND_INIT) == 0){
    tok = NULL;
    if((tok = strtok(tok, ",")) != NULL){
    /*some code*/
    }
}

1 个答案:

答案 0 :(得分:4)

strtok函数不可重入,您不能将其用于多个同时标记。

如果您拥有strtok_s,请使用{{3}}。或strtok_r你有它。