0
strtokに複数回デリミタを使用する方法はありますか?私はloadまたはinitのどちらかで動作するようにコードを取得できますが、両方では動作しません。例はstrtok負荷位またはinit位の形でユーザからの入力をトークンに使用されるコード、#、方向:Cのstrtokにdelimを複数回使用できますか?
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*/
}
}
'tok'を' NULL'に設定して文字列として使用しようとすると、それほど多くは得られません。 'tok = strtok(choice、" ")'を一度実行し、if/else ifで 'tok'をチェックすることもできます。 – Schwern
@Schwernこれは正しい使い方です。 * man strtok(3)を参照してください。* – EJP
@EJPそうです、strtokは嫌です。 – Schwern