Qt学习笔记之 字符串类型小结
1. Qt常用字符串類型
1.1 QString
QString是Unicode編碼的字符串,存儲一系列16位的QChar,每一個QChar對應一個Unicode 4.0編碼的字符,詳見《Qt學習筆記之QString》。
1.2 QByteArray
QByteArray是個字節數組,可以存儲原始字節(包括一系列'\0')和傳統的8位'\0'結尾的字符串,每一個字節存儲為char類型的數據;
雖然QString用得更普遍和方便,但當需要存儲原始的二進制數據或者內存保護要求嚴格時,用QByteArray比用QString更合適,詳見《Qt學習筆記之QByteArry》。
1.3 QChar
QChar存儲一個16位(2個字節)的Unicode字符,數據的存儲類型為ushort(unsigned short),詳見《Qt學習筆記之QChar》。
1.4?QLatin1Char
QLatin1Char是個結構體,存儲一個8位ASCII/Latin-1編碼的字符,數據的存儲類型為char,詳見《Qt學習筆記之QLatin1Char》。
2. Qt字符串類型見轉換
2.1 QByteArray、char *與QString互轉
QByteArray與QString互轉極為簡單,二者從本質上類似,都是連續存儲,區別是前者可以存無法顯示的字符,后者只存可顯示的字符。如QByteArray可以存0x00-0x19,而QString則存儲如0x30等可顯示字符(0x20-0x7E)
QString 轉 char?,需要用到 QByteArray 類, 因為 char?最后都有一個'\0'作為結束符,而采用 QString::toLatin1() 時會在字符串后面加上'\0'。
#include <QCoreApplication> #include <QChar> #include <QString> #include <QDebug> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);//! QString 定義QString str = "hello world";//! QString 轉 QByteArrayQByteArray ba;ba = str.toLatin1();qDebug("%s",ba.data());//! QByteArray轉char *char *ch = ba.data();qDebug("%s",ch);//! char*轉QByteArrayQByteArray ba1(ch);//! char*轉QStringQString str1(ch);//或str=ch或str=QLatin1String(ch)//! QByteArray轉QStringQString str2(ba1);return a.exec(); }2.2 QString 與 QChar?
#include <QCoreApplication> #include <QChar> #include <QString> #include <QDebug> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);//! QString轉QCharQString str = "hellow";QChar *ch = new QChar[10];ch = str.data();for (int i = 0; i < 10; i++)qDebug()<<ch[i];//! QChar轉Qstringstatic const QChar data[4] = { 'h', 'e', 'l', 'l' };QString str1(data, 4);qDebug("%s",str1.toLatin1().data());QString str2;str2.resize(4);str2[0] = QChar('h');str2[1] = QChar('e');str2[2] = QChar('l');str2[3] = QChar('l');qDebug("%s",str2.toLatin1().data());return a.exec(); }2.3?QChar與 char
//qchar - char // char Qchar::toLatin1() 或者 char Qchar::toAscii() const char ch; qchar qch; ch = qch.toLatin1;//char -> qchar qchar(char ch) qchar (uchar ch)?
參考資料:
1.?https://www.cnblogs.com/retry/p/9328748.html
總結
以上是生活随笔為你收集整理的Qt学习笔记之 字符串类型小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习笔记之QLatin1Char
- 下一篇: Qt学习笔记之国际化