QT学习(2)——QByteArray类

QString提供的字符编码集的转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char*)构造的QByteArray对象。
QByteArray提供了一个字节数组,它既可以存储原始字节也可以存储以“\0”结尾的8位字符串,比const char*更方便。

转换函数

1.toAscii():返回ASCII编码的8位字符串
2.toLatin1():返回一个Latin-1编码的8位字符串
3.toUtf8():返回UTF-8编码的8位字符串
4.toLocal8Bit():返回一个系统本地(locale)编码的8位字符串

QString str="Welcome to you!";//初始化一个字符串对象
QByteArray ba = str.toAscii();//通过QString::toAscii()函数,将Unicode编码的字符串转换为ASCII码的字符串,并存储在QByteArray对象ba中
qDebug()<<ba;//使用qDebug()函数输出转换后的字符串
ba.append("Hello World!");//使用QByteArray::append()函数追加一个字符串
qDebug()<<ba.data();

成员函数

1 char *QByteArray::data()
返回指向字节数组中存储的数据的指针,该指针可用于访问和修改组成数组的字节,具体访问字节数组中的某一个,采用ba.data()[0]->访问第0个

QByteArray ba("Hello world");
char *data=ba.data();//返回一个指向字节数组ba的数据指针,指向第一个字符
qDebug()<<ba.data();//打印整个字符
while(*data)
{
   cout<<"["<<*data<<"]"<<endl;
}

结果:[H],[e],,,,,,,[d].
2.QByteArray &QByteArray::fill(char ch,int size=-1)
将字节数组中的每个字节设置为字符ch,如果size与-1(默认值)不同,则字节数组将预先调整为大小
3 int QByteArray::indexOf(const QByteArray &ba,int from=0)const
返回该字节数组中第一次出现字节数组ba的索引位置,从索引位置向前搜索。如果找不到ba,则返回-1

猜你喜欢

转载自blog.csdn.net/xu1129005165/article/details/81302089
今日推荐