Qt之QByteArray類學習

2021-08-08 22:18:32 字數 1778 閱讀 1664

qbytearray類提供了位元組陣列,包含於

標頭檔案中,從

q3cstring

類繼承而來。

qbytearray可以儲存

raw bytes

和傳統的

8-bits

的字串,都是以

'\0'

結尾的,使用比

char*

更方便qstring也可以儲存字串資訊,但通常以

16-bits

形式unicode

方式儲存,這有利於非

ascii

和非latin-1

格式的資料的儲存,例如

gbk等中文

size()大小,不包含

'\0' 

,qstrlen()

包含'\0'

resize()可以重新定義大小

data()所儲存的資料物件,返回乙個指標

at()與

效果一樣,都是去第

i+1的位元組

left(int len) right(int len) mid(int  pos, int len)都是從該字串中提取左、右和從

pos開始的

len個位元組的成員函式,返回

qbytearray

型別replace(5,3,"&")從第五個位元組起的

3個位元組都用

"&"來被替換

indexof("pch")在該字元陣列中檢索

pch字串,返回第乙個

pch第乙個字元的位置,若未找到則返回

-1lastindexof()返回最後乙個符合的字串首字元的位置

isnull()判斷字元陣列是否為空

("")=0

isempty()判斷該字元陣列是否有內容

("")=1

qbytearray ()構造乙個

empty

的字元陣列

qbytearray ( const char * str )用

str來初始化

qbytearray ( const char * data, int size )用前

size

個位元組來初始化

qbytearray ( int size, char ch )size個位元組都是 

chqbytearray ( const qbytearray & other )拷貝建構函式

chop(int n)從最後刪除

n個位元組

clear()清空

int qbytearray::count ( const qbytearray & ba ) const返回

ba在字元陣列中出現的次數

#include

#include

#include

using

namespace

std;

qbytearray

inttobyte(int

i)

int

bytestoint(qbytearray

bytes)

int

main(int

argc,

char

*argv)

QByteArray類學習(QT常見類學習1)

qbytearray類提供了位元組陣列,包含於 標頭檔案中,從 q3cstring 類繼承而來。qbytearray可以儲存 raw bytes 和傳統的 8 bits 的字串,都是以 0 結尾的,使用比 char 更方便qstring也可以儲存字串資訊,但通常以 16 bits 形式unicode...

QT學習之QByteArray轉QString

方法一 如下 void mainwindow on startbtn clicked qbytearray badlt645frame for i 12 i qbytearray badlt645frametohex badlt645frame.tohex std string badlt645fr...

qt之QByteArray亂碼問題解決

今天寫了乙個qq群聊實戰,當我儲存聊天記錄的時候,使用qfile直接寫入檔案,並沒有亂碼出現,但是當以流形式qdatastream寫入檔案的時候,就出現了亂碼,通過以下方式解決 解決qbytearray亂碼問題 qbytearray content ui msgbrowser toplaintext...