私は、ユーザーが1-3桁の文字列を入力し、その後にバックスラッシュを入力してから1-3桁を入力できるか、1-3桁を入力できるCプログラムを作成しています。コンマ、そして別の1〜3桁の数字があり、繰り返し回数を制限することはできません。Cデリミタを決定する複数のStrtok
入力区切り記号がバックスラッシュかカンマか(番号の扱い方を決定する)かどうかを判断し、数値を配列に入れる必要があります。
私がこれを行う方法は、strtokを次のように使用することでした。文字列はchar *トークンとして入力されます。
op_tok1 = strtok(token, "\\");
if(op_tok1 != NULL)
{
/* Process numbers */
return;
}
op_tok2 = strtok(token, ",");
if(op_tok2 != NULL)
{
/* Process other numbers */
return;
}
これは、カンマでバックスラッシュでdelimetered何のために動作しますが、ありません。私はこれがstrtokがトークン変数を混乱させるためだと信じています。これは本当ですか?これについてもっと良い方法がありますか?ありがとう!
カンマstrtokで使用するために 'token'のコピーを作成しようとしましたか? – gcochard