QT QByteArray字节数组详解

QByteArray介绍


概念:提供一个字节数组(序列),QByteArray可用于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串,使用 QByteArray比使用const char 更方便.   
在IO操作中,C语言常使用const char ,而Qt中常使用QByteArray

常用语法

//函数
size();    //得到大小,以字节为单位
resize();  //定义大小
at();      //通过索引取值



QByteArray ba("Hell");
qDebug()<<ba.size(); //4
 
ba.resize(5);
qDebug()<<ba.size(); //5
qDebug()<<ba[0];     //H
 
ba[4]='0';
qDebug()<<ba;        //Hello

按字节初始化、访问

QByteArray ba;
ba.resize(4);
ba[0] = 0x30;
ba[1] = 0x31;
ba[2] = 0x32;
ba[3] = 0x33;
std::cout<<ba.at(3)<<std::endl; //3

遇到\0结束

QByteArray ba("hel\0l\0o", 5);
qDebug()<<ba.size(); //5
qDebug()<<ba;  //hel

QByteArrar与char*相互转换

QByteArrar转char*

  • 通过constData()转换
  • QByteArray ba("Hello");
    const char * str = ba.constData();
    std::cout << str << std::endl;

char*转QByteArrar

  • 通过QString的字符集转换
  • const char *p = "abc";
    QString c = QString(p);
    QByteArray ba = c.toUtf8();
    qDebug()<<ba;

  • 通过fromRawData()
  • const char * hello = "hello";
    QByteArray ba(QByteArray::fromRawData(hello, 5));
    qDebug()<<ba;

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高亚奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值