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
你有。
有没有办法让 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
你有。