strtok () и пустые поля

Я сериализирую некоторую структуру C для строкового представления и, чем десериализация его с strtok(). Но, к сожалению, strtok() не обнаруживайте пустые поля (например, 1:2:: 4).

Есть ли какая-либо альтернативная функция?

5
задан Marko Kevac 4 March 2010 в 08:20
поделиться

2 ответа

В Linux есть strsep .

Функция strsep () была введена как замена strtok (), поскольку последняя не может обрабатывать пустые поля . Однако strtok () соответствует C89 / C99 и, следовательно, более переносима.

10
ответ дан 18 December 2019 в 09:49
поделиться

Вы можете использовать strchr (только для одного символа-разделителя) или strcspn (для группы возможных разделителей), чтобы найти следующий разделитель, обработать токен, а затем просто выполнить шаг на один символ вперед. Сделайте это в цикле, и у вас будет то, что вам нужно.

7
ответ дан 18 December 2019 в 09:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: