C言語の文字列分割用関数strtok()を利用する場合、以下の点に注意する必要があります。
区切り文字として指定した文字が2つ連続した場合、そのデータを読み飛ばしてしまいます。
例えば、カンマ区切りで"test,,123"のようなデータを渡すと、testと123は読み取れますが、testと123の間にあるデータは、勝手に読み飛ばしてしまいます。

そのため、分割する文字列内で区切り文字が連続するようなデータに対して、strtok()で文字列を分割することは避けた方が良いでしょう。

以下は、この動作を確認するためのサンプルです。

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]){
int ret = 0; //戻り値
char buf[] = {"test,,123"}; //テストデータ
int fieldCount = 0; //区切り後のデータ数
char* pos; //文字位置

pos = strtok( buf , "," );
printf("%d = %s\n", fieldCount, pos);
fieldCount++;
while( NULL != pos ){
//見つかった位置の次の文字に移動する
pos = strtok( NULL , "," );
printf("%d = %s\n", fieldCount, pos);
fieldCount++;
}
printf("fieldCount = %d\n", fieldCount);

return ret;
}


上記のサンプルを実行した場合、以下の【想定する実行結果】になることを期待しますが、【実行結果】となります。
【想定する実行結果】
0 = test
1 =
2 = 123
3 = (null)
fieldCount = 4

【実行結果】
0 = test
1 = 123
2 = (null)
fieldCount = 3

【補足事項】
・想定する実行結果を得るためには、strstr()等を利用して値を取得し、分割する必要があります。