Russian Qt Forum
Сентябрь 30, 2024, 22:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Парсинг строки  (Прочитано 5027 раз)
SibBear
Гость
« : Октябрь 07, 2012, 12:10 »

Добрый день. Есть строка char*, разделенная запятыми. Два значения являются целыми, два других - double. Например:
100,200,123.45,678.90
Как наиболее эффективно распарсить эту строку?
Записан
Bepec
Гость
« Ответ #1 : Октябрь 07, 2012, 12:12 »

Код:
QString text("11,12,10.2,11.2");
QStringList tmpList = text.split(",");
В результате у тебя массив строк, преобразовывай как хочешь.
Записан
SibBear
Гость
« Ответ #2 : Октябрь 07, 2012, 12:16 »

К сожалению, программа без Qt, на чистом C++. Я бы написал на другой форум, но раз уж здесь есть такой раздел - почему бы и нет?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 07, 2012, 12:27 »

Есть прекрасная Сишная ф-ция http://www.cplusplus.com/reference/clibrary/cstdlib/strtod/ которая делает что надо (и раз в 10 быстрее). Достаточно добавить пару строк в примерчик - и готово 
Записан
Bepec
Гость
« Ответ #4 : Октябрь 07, 2012, 12:32 »

Извиняюсь раздел не посмотрел :/
Записан
SibBear
Гость
« Ответ #5 : Октябрь 07, 2012, 14:38 »

Всё, сделал так:

Код:
if(sscanf(str,"%d,%d,%lg,%lg",&a,&b,&c,&d)<4) return false;
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.099 секунд. Запросов: 23.