Qt 如何将一个输出结果是0x84c7ff9c10的unsigned char[]数组转化成QByteArray?

Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换
Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型
因为char*最后都有一个‘/0’作为结束符,而采用QString::toLatin1()时会在字符串后面加上‘/0’
这样就完成了QString向char*的转化。经测试程序运行时不会出现bug
注意第三行,一定要加上,不可以str.toLatin1().data()这样一部完成,可能会出错。

  • 腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?

字节数组类QByteArray提供一个字节数组用于存储原始字节,号称 Best array!它比使用char *更方便,该类在串口通信中经常被使用,因为串口通信数据都是一个一个的8位字节流。

虽然size()为5,但是字节数组在最后还会保留一个额外的’\ 0’字符, 以便如果使用一个函数来请求指向底层数据的指针(例如调用data()),那么指出的数据保证被’\ 0’终止。

以下代码,是无法编译通过的,因为索引是小于size的。加\0,不是说size就变6了。

//无法编译通过,报错,索引不允许等于size!

这在调试特别有用,因为大多Hex码没有字符显示

其中,参数n是要转变的整数;base是要进行转换的进制,进制取值范围为2到36,
即从二进制到三十六进制。该函数返回整数n对应的base进制的字符数组。下列代码演示

7、字符串数值转为各类数值

11、QByteArray与自定义结构体之间的转化

13、向前搜索和向后搜索

函数insert()可以在某个索引位置上插入:

我要回帖

更多关于 qstring转qbytearray 的文章

 

随机推荐