У меня есть строка для разбора. Эта строка имеет почти определенный формат с координатами GPS. Я хочу получить координаты.Как анализировать почти определенную строку в C?
Иногда у меня есть это:
09:24:29 N 012:34:35 W, 09:22:18 N 012:33:55 W
Но иногда у меня есть лишние пробельные:
09:24:29 N 012:34:35 W , 09:22:18 N 012:33:55 W
Но иногда меня нет пробельные:
09:24:29 N 012:34:35 W,09:22:18 N 012:33:55 W
Но иногда у меня есть десятичное:
09:24:29.3 N 012:34:35.2 W, 09:22:18.1 N 012:33:55.6 W
Так что мой вопрос: Какой самый надежный и портативный способ прочитать эти координаты GPS в C?
Сначала я начал с sscanf
, но у меня много проблем с дополнительными (или нет) пробелами и десятичными знаками.
Совместное использование ваших исследований помогает всем. Расскажите, что вы пробовали и почему это не соответствовало вашим потребностям. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и релевантный ответ! Также см. [Как спросить] (http://stackoverflow.com/questions/how-to-ask) – Eregrith
Начните с определения грамматики *. Затем создайте для него синтаксический анализатор. Возможно, вы сможете использовать библиотеку для второй части. (В C++ я, вероятно, был бы пухлым для Boost Spirit). – Bathsheba
обрабатывающие строки всегда беспорядочны в C. Вы могли бы использовать другой язык? Если нет, либо пойдите с парсером, как предлагает @Bathsheba, или если грамматика достаточно проста, вы можете обработать строковый символ символом char и построить свои значения вручную. –