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

Can a delim be used more than once for strtok in C?

有没有办法让 strtok 多次使用 delim?我只能让代码为 load 或 init 工作,但不能同时为两者工作。示例代码,其中 strtok 用于以 load # 或 init #,#,direction 的形式标记来自用户的输入:

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*/
    }
}

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

如果有,请改用 strtok_s。或者 strtok_r 你有。