日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习笔记之 字符串类型小结

發布時間:2024/9/21 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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学习笔记之 字符串类型小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。