私はstrtok()
をcsv文字列を解析するために使用しています。最初にトークンをトークン化して、そこにいくつのトークンがあるかを調べるので、正しいサイズの文字列を割り当てることができます。前回トークン化に使用したのと同じ変数を使用します。私がそれをもう一度行うたびに、strtok(NULL, ",")
は、さらに多くのトークンが解析されていても、NULL
を返します。誰かが私が間違っていることを教えてもらえますか?strtok()でcで2回文字列をトークン化
char* tok;
int count = 0;
tok = strtok(buffer, ",");
while(tok != NULL) {
count++;
tok = strtok(NULL, ",");
}
//allocate array
tok = strtok(buffer, ",");
while(tok != NULL) {
//do other stuff
tok = strtok(NULL, ",");
}
したがって、2番目のwhileループでは、トークンがさらにあるにもかかわらず最初のトークンが見つかった後に常に終了します。誰かが私が間違っていることを知っていますか?
最近誰もが 'strtok()'が何であるか知っていますが、誰もその文書を読んでいないのですか?誰も私がCを学んでいたときにそれについて話したことはありませんでしたが、私がそれを知るとすぐに、私はそれを読んでいました。 –