@pshevnin

Чем распарсить строку на C?

Добрый день. Есть строка формата:
828,2065,2001,1000,True,"LINESTRING(13.3667747154831 49.6858398295424,13.3636960233053 49.6855263919521,13.3627006339596 49.6852257801913)"
Нужно разбить её на части между запятыми, но при этом игнорировать всё, что после True. Как это можно сделать на языке C? Пробовал strtok(), но с ним не получается игнорировать ненужную часть строки.
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
sscanf(str, "%d,%d,%d,%d,True", ...);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
Да всё просто. Отрезаете всё, что идёт после буквы "T" (через strchr ищете, а обрезка легко гуглится), затем по оставшейся части последовательно (цикл while или for) проходите по каждому символу. Если он не равен запятой, то добавляете символ к временной строке (которую тут же в цикле можно и создавать). Каждая такая строка и будет искомыми числами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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