Как мне разобрать поля в строке через запятую, используя sscanf, поддерживая пустые поля?

У меня есть разделенная запятыми строка, которая может содержать пустые поля. Например:

1,2,,4

Используя базовый

sscanf(string,"%[^,],%[^,],%[^,],%[^,],%[^,]", &val1, &val2, &val3, &val4);

Я получаю все значения до пустого поля и неожиданные результаты из пустого поля и далее.

Когда я удаляю выражение для пустого поля из sscanf (),

sscanf(string,"%[^,],%[^,],,%[^,],%[^,]", &val1, &val2, &val3, &val4);

все отлично работает

Поскольку я не знаю, когда собираюсь получить пустое поле, есть ли способ переписать выражение для элегантной обработки пустых полей?

Ответы на вопрос(10)

Ваш ответ на вопрос