Qt学习之QByteArray字节类

QByteArray字节类

概述

QByteArray专门用于字符数组的操作。它和QString不是一个东西。QString里面存的是Unicode编码的字符串,而QByteArray没有经过编码,是原始的数据。

QByteArray的定义

//初始化
QByteArray qb("all will be ok");
qDebug()<<qb;//结果为all will be ok
//赋值
QByteArray qb;
qb.resize(5);//给QByteArray qb分配五个字节空间
qb[0]=0x3c;
qb[1]=0xb8;
qb[2]=0x64;
qb.data()[3]=0x31;
qDebug()<<q[2];//结果为d
qDebug()<<q[3];//结果为1

QByteArray的数据格式转换

//int类型转换为QByteArray
int n=63;
qDebug()<<QByteArray::number(n);//结果为“63”
QByteArray ba;
ba.setNum(n);//结果为"63"
//QByteArray转换为int、double、float
QByteArray str("1234");
qDebug()<<str.toInt();//结果为int类型的1234
qDebug()<<str.toDouble();//结果为double类型的1234
qDebug()<<str.toFloat();//结果为float类型的1234

QByteArray的操作

//append()
QByteArray x("air");
QByteArray y("port");
x.append(y);//airport
//insert()
QByteArray ba("Meal");
ba.insert(1,QByteArray("ontr"));//结果为Montreal
//prepend()
QByteArray x("port");
QByteArray y("air");
x.prepend(y);//结果为airport
//replace()
QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4,3,y);//结果为Say no!
//remove()
QByteArray x("airssport");
x.remove(3,2);//结果为airport
//at()
QByteArray qb;
qb.resize(5);//给QByteArray qb分配五个字节空间
qb[0]=0x3c;
qb[1]=0xb8;
qb[2]=0x64;
qDebug()<<qb.at(2);//结果为d
//chop()从字节数组末尾移除n个字符
 QByteArray ba("STARTTLS\r\n");
 ba.chop(2);//结果为ba == "STARTTLS"

QByteArray大小写转换

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();//结果为y == "qt by the qt company"
QByteArray z = x.toUpper();//结果为z == "QT BY THE QT COMPANY"

QByteArray字符串相互转换

//QByteArray转QString
QByteArray ba("abc123");
QString str = ba; 
qDebug()<<str ;//输出:"abc123"
//QString转QByteArray
QString str("abc123");
QByteArray ba = str.toLatin1();
qDebug()<<ba;//输出:"abc123"

概述借鉴于该网址,讲得很清楚

猜你喜欢

转载自blog.csdn.net/m0_56626019/article/details/129794211