Я пытаюсь разметить строку, но мне нужно точно знать, когда нет данных виден между двумя токенами. например, при разметке следующей строки « a, b, c ,,, d, e
» мне нужно знать о двух пустых слотах между « d
» и « e
'...что я не могу узнать, просто используя strtok ()
. Моя попытка показана ниже:
char arr_fields[num_of_fields];
char delim[]=",\n";
char *tok;
tok=strtok(line,delim);//line contains the data
for(i=0;i<num_of_fields;i++,tok=strtok(NULL,delim))
{
if(tok)
sprintf(arr_fields[i], "%s", tok);
else
sprintf(arr_fields[i], "%s", "-");
}
Выполнение вышеуказанного кода с вышеупомянутыми примерами помещает символы a, b, c, d, e в первые пять элементов arr_fields
, что нежелательно. Мне нужно, чтобы позиция каждого символа входила в определенные индексы массива: т.е. если между двумя символами отсутствует символ, он должен быть записан как есть.