Qt中的QString與int、const char *、ASCII碼互相轉換

作者:billy
版權聲明:著作權歸作者所有,商業轉載請聯繫作者獲得授權,非商業轉載請註明出處

1. QString 轉 int

bool ok;
QString str1 = "0xf8";
int value1 = str1.toInt(&ok, 16);
qDebug() << ok << " " << value1;    // true 248

QString str2 = "012";
int value2 = str2.toInt(&ok, 10);
qDebug() << ok << " " << value2;    // true 12

QString str3 = "a";
int value3 = str3.toInt(&ok, 10);
qDebug() << ok << " " << value3;    // false 0

2. int 轉 QString

int a = 5;
qDebug() << QString::number(a, 10);	// "5"

double b = 1.2;
QString str;
str.setNum(b);
qDebug() << str;	// "1.2"

3. QString 轉 const char *

QString str = "abc";

QByteArray array = str.toLatin1();
const char *ch1 = array.data();
qDebug() << ch1;	// "abc"

std::string s = str.toStdString();
const char *ch2 = s.c_str();
qDebug() << ch2;	// "abc"

4. const char * 轉 QString

const char *ch = "hello world !";

QString str1 = QString::fromLocal8Bit(ch);
qDebug() << str1;	// "hello world !"

QString str2(ch);
qDebug() << str2;	// "hello world !"

5. QString 轉 ASCII碼

QString str = "abcde";
QByteArray array = str.toLatin1();

for (int i = 0; i < array.size(); ++i)
{
    qDebug() << (int)array.at(i);	// 97 98 99 100 101
}

6. ASCII碼 轉 QString

QByteArray array;
array.append(97);
array.append(102);
array.append(108);
array.append(116);

for (int i = 0; i < array.size(); ++i)
{
    qDebug() << QChar(array.at(i));	// 'a' 'f' 'l'  't'
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章