crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Число ли в QString?
qt_user
  опции профиля:
сообщение 4.10.2012, 9:27
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 11.9.2012
Пользователь №: 3518

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ребят, как грамотно сделать проверку содержимого QString?
То есть содержимое может быть различным
Цитата
0x34
123
043
abc


в 16,10,8 - ричных системах счисления и буквы.

Надо распознать содержимое и если это число, то
qDebug()<<"OK";
иначе
qDebug()<<"FAIL";
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.10.2012, 9:35
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


конечный автомат
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%...%BC%D0%B0%D1%82
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 4.10.2012, 12:27
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Или так:
bool ok;
QString ("0xFF").toInt (&ok, 0);
qDebug () << ok;

Либо toDouble(), зависит от постановки. Виноват, косячнул.

Сообщение отредактировал iReset - 4.10.2012, 13:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 4.10.2012, 12:47
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(iReset @ 4.10.2012, 13:27) *
Либо toDouble(), зависит от постановки.

А разве toDouble понимает не десятичные числа?

@ qt_user
Если это учебная задача, то возможно требуется использовать регулярные выражения, тогда:
bool check(const QString &s)
{
    QRegExp re("0x[0-9a-fA-F]+|0[0-7]*|[1-9][0-9]*");
    return re.exactMatch(s);
}


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 4:13