私は1 2 3 4,5 6 7 8,9 10 11 12のような入力文字列から、strtok()関数を使って分割してcプログラムで個々の数字を取り出そうとしていました。これは私が以下のプログラミングを書いたが、最初のカンマまで読み込んでいた、区切り文字(注:入力サイズは変わる可能性がありますが、カンマは4桁後ですが、k(5,6,7など)桁テストケースをベースにしています)。入力文字列をcで指定された形式から分割できませんか?
fgets(str,80,stdin);
/* read str with comma(,)delimiter */
token = strtok(str, ",");
/* walk through other tokens */
while(token != NULL)
{
// read token string with space delimiter
token2 = strtok(token, " ");
while(token2 != NULL)
{
printf("%s \n", token2);
token2 = strtok(NULL, " ");
}
token = strtok(NULL, ",");
}
あなたは 'strtok'呼び出しのいくつかの結果で何もしておらず、間違ったポインタ引数を渡しています。 'strtok'自体が' NULL'を返すまで、 'NULL'ポインタで繰り返し呼び出す必要があります。別にして、 'fgets'は末尾の' newline'を保持するので、区切り文字列に '\ n'を追加する必要があります。 –
入力を処理する簡単なテストプログラムの期待される出力は?各桁、各番号、各グループ、その合計は?それは不明だ。 –