Необходимо знать, когда данные не появляются между двумя разделителями токенов с помощью strtok ()

Я пытаюсь разметить строку, но мне нужно точно знать, когда нет данных виден между двумя токенами. например, при разметке следующей строки « 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 , что нежелательно. Мне нужно, чтобы позиция каждого символа входила в определенные индексы массива: т.е. если между двумя символами отсутствует символ, он должен быть записан как есть.

7
задан Jonathan Leffler 2 January 2012 в 23:00
поделиться