Qt6重要数据类型-QByteArray分析_qbytearray ‘ 0‘ 转换为qstring 为空(2)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一.简介

QByteArray 可用于存储原始字节(包括 '\0’s)和传统的 8 位以 ‘\0’ 结尾的字符串。使用 QByteArray 比使用 const char * 方便得多。在幕后,它始终确保数据后跟一个 ‘\0’ 终止符,并使用隐式共享(copy-on-write)来减少内存使用并避免不必要的数据复制。

除了 QByteArray,Qt 还提供了 QString 类来存储字符串数据。对于大多数用途,QString 是您要使用的类。它存储 16 位 Unicode 字符,从而可以轻松地在您的应用程序中存储非 ASCII/非拉丁 1 字符。此外,QString 在 Qt API 中贯穿始终。 QByteArray 适用的两种主要情况是当您需要存储原始二进制数据时,以及当内存保护至关重要时(例如,对于嵌入式 Linux 的 Qt)。
初始化 QByteArray 的一种方法是简单地将 const char * 传递给其构造函数。例如,以下代码创建一个大小为 5 的字节数组,其中包含数据“Hello”:

  QByteArray ba("Hello");

二.最常用的API(20个例子)

1.构造函数初始化

//1.初始化
void demo1()
{
 
    //构造函数初始化
    QByteArray arr1("hello");

    QByteArray arr2(arr1);
    QByteArray arr3(3,'a');

    //深拷贝初始化
    const char cart[] = {
 'c', 'a', '\0', 'r', '\0', 't'};
    QByteArray arr4(cart,6);
    QByteArray arr5={
 0x04,0x02};


    qDebug()<<arr1<<arr1.toHex();
    qDebug()<<arr2<<arr2.toHex();
    qDebug()<<arr3<<arr3.toHex();
    qDebug()<<arr4<<arr4.toHex();
     qDebug()<<arr5<arr5.toHex();

}

“hello” “68656c6c6f”
“hello” “68656c6c6f”
“aaa” “616161”
“ca\x00r\x00t” “636100720074”
“02020202”

2.使用函数初始化

void demo2()
{
 
 QByteArray ba("Istambul");
 ba.fill('o');
 // ba == "oooooooo"

 ba.fill('X', 2);
 // ba == "XX"
}

3.深拷贝与浅拷贝

void demo2()
{
 

    //浅拷贝初始化
    const char cart[] = {
 'c', 'a', '\0', 'r', '\0', 't'};
    QByteArray ba1(QByteArray::fromRawData(cart, 6));


**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/2dd1a4fff4c1144101a4d96496c16af6.png)
![img](https://img-blog.csdnimg.cn/img_convert/be320981a557280a857ffb33e0051f64.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

s/618679757)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值