Я сериализирую некоторую структуру C для строкового представления и, чем десериализация его с strtok()
. Но, к сожалению, strtok()
не обнаруживайте пустые поля (например, 1:2:: 4).
Есть ли какая-либо альтернативная функция?
В Linux есть strsep .
Функция strsep () была введена как замена strtok (), поскольку последняя не может обрабатывать пустые поля . Однако strtok () соответствует C89 / C99 и, следовательно, более переносима.
Вы можете использовать strchr
(только для одного символа-разделителя) или strcspn
(для группы возможных разделителей), чтобы найти следующий разделитель, обработать токен, а затем просто выполнить шаг на один символ вперед. Сделайте это в цикле, и у вас будет то, что вам нужно.