![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
crazymonkey |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 26 Регистрация: 23.6.2011 Пользователь №: 2764 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Доброго времени суток.
Подскажите как из строки вида "A_14_R4" вынуть 14 и 4 как int В качестве временного решения использую QString tm = //некая строка; QChar* data1 = tm.data(); ++data; //некторое количесвто раз повторить int tm_wt = data1->toAscii() - 48; ![]() ![]() |
|
|
BlueIceScream |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Используйте фунции:
QString mid ( int position, int n = -1 ) const QString right ( int n ) const int toInt ( bool * ok = 0, int base = 10 ) const |
|
|
zloiia |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 25 Регистрация: 5.5.2011 Пользователь №: 2655 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро ![]() |
|
|
crazymonkey |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 26 Регистрация: 23.6.2011 Пользователь №: 2764 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро ![]() Люблю регулярные выражения, но не счел нужным применения их в этой ситуации. Была бы строка подлиннее, тогда я бы точно пользовался RegExp в полной мере. А для строки такого формата я сделал так 1) Разбил строку по '_' функцией split 2) Воспользовался функциями которые предложил BlueIceScream |
|
|
zloiia |
![]()
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 25 Регистрация: 5.5.2011 Пользователь №: 2655 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро ![]() Люблю регулярные выражения, но не счел нужным применения их в этой ситуации. Была бы строка подлиннее, тогда я бы точно пользовался RegExp в полной мере. А для строки такого формата я сделал так 1) Разбил строку по '_' функцией split 2) Воспользовался функциями которые предложил BlueIceScream Просто лично я как-то ленюсь частенько удостоверяться в истинности перевода из строки в число ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 10:59 |