QByteArray
QByteArray
- 该类是一个用于处理字符串的类似于 C++的 string 类型的类
- 该类保证字符串以'\0'结尾,并使用隐式共享(copy-on-write)来减少内存用量和不必要的数据复制。
- 适合用于存储纯二进制数据和内存资源比较短缺的情况下。
构造函数如下
- QByteArray(QByteArray &&other)
- QByteArray(const QByteArray &other)
- QByteArray(int size, char ch) //构造一个大小为size的字节数组,每个字节都设置为字符ch。
- QByteArray(const char *data, int size = -1)
- QByteArray()
其他常用函数
- char *QByteArray::data()
- const char *QByteArray::constData() const
返回指向存储在字节数组中的数据的指针。 该指针可用于访问和修改组成数组的字节。 数据以'\ 0'终止,即,返回的字符串中的字节数是size()+ 1(对于'\ 0'终止符)。
QByteArray ba("Hello world");
char *data = ba.data();
while (*data) {cout << "[" << *data << "]" << Qt::endl;++data;
}
//从索引位置pos开始,从数组中删除len个字节,并返回对该数组的引用。如果pos超出范围,则什么也不会发生。 如果pos有效,但是pos + len大于数组的大小,则数组将在位置pos处被截断。
QByteArray ba("Montreal");ba.remove(1, 4); // ba == "Meal"
QByteArray x("Five pineapples");
QByteArray y = x.mid(5, 4); // y == "pine"
QByteArray z = x.mid(5); // z == "pineapples"
返回一个字节数组,其中包含此字节数组的最左边的len个字节。如果len大于size(),则返回整个字节数组。
QByteArray x("Pineapple");
QByteArray y = x.left(4); // y == "Pine"
将索引位置pos中的len个字节替换为之后的字节数组,并返回对此字节数组的引用。
QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4, 3, y); // x == "Say no!"
返回重复指定次数的此字节数组的副本。如果times小于1,则返回一个空字节数组。
QByteArray ba("ab");
ba.repeated(4); // returns "abababab"
返回一个字节数组,其中包含与基数(默认为10)相等的数字n的字符串。底数可以是2到36之间的任何值。
int n = 63;
QByteArray::number(n); // returns "63"
QByteArray::number(n, 16); // returns "3f"
QByteArray::number(n, 16).toUpper(); // returns "3F"
QByteArray ba = QByteArray::number(12.3456, 'E', 3); // ba == 1.235E+01
- int QByteArray::lastIndexOf(const QByteArray &ba, int from = -1) const
- int QByteArray::lastIndexOf(char ch, int from = -1) const
- int QByteArray::lastIndexOf(const char *str, int from = -1) const
返回字节在该字节数组中最后一次出现的索引位置,从索引位置from开始向后搜索。 如果from为-1(默认值),则搜索从最后一个字节开始。 如果找不到ba,则返回-1。
QByteArray x("crazy azimuths");
QByteArray y("az");x.lastIndexOf(y); // returns 6x.lastIndexOf(y, 6); // returns 6x.lastIndexOf(y, 5); // returns 2x.lastIndexOf(y, 1); // returns -1QByteArray ba("ABCBA");ba.lastIndexOf("B"); // returns 3ba.lastIndexOf("B", 3); // returns 3ba.lastIndexOf("B", 2); // returns 1ba.lastIndexOf("X"); // returns -1
- bool QByteArray::isEmpty() const
- bool QByteArray::isNull() const
QByteArray().isEmpty(); // returns true
QByteArray("").isEmpty(); // returns true
QByteArray("abc").isEmpty(); // returns falseQByteArray().isNull(); // returns true
QByteArray("").isNull(); // returns false
QByteArray("abc").isNull(); // returns false
- int indexOf(const QByteArray &ba, int from = 0) const
- int indexOf(char ch, int from = 0) const
- int indexOf(const char *str, int from = 0) const
- int indexOf(const QString &str, int from = 0) const
返回字节数组ba在该字节数组中首次出现的索引位置,从索引位置from开始向前搜索。 如果找不到ba,则返回-1。
QByteArray x("sticky question");
QByteArray y("sti");x.indexOf(y); // returns 0x.indexOf(y, 1); // returns 10x.indexOf(y, 10); // returns 10x.indexOf(y, 11); // returns -1
- void QByteArray::chop(int n)
从字节数组的末尾删除n个字节。如果n大于size(),则结果为空字节数组。
QByteArray ba("STARTTLS\r\n");
ba.chop(2); // ba == "STARTTLS"
QByteArray ba1("ca\0r\0t");ba1.size(); // Returns 2.ba1.constData(); // Returns "ca" with terminating \0.QByteArray ba2("ca\0r\0t", 3);ba2.size(); // Returns 3.ba2.constData(); // Returns "ca\0" with terminating \0.QByteArray ba3("ca\0r\0t", 4);ba3.size(); // Returns 4.ba3.constData(); // Returns "ca\0r" with terminating \0.const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};QByteArray ba4(QByteArray::fromRawData(cart, 6));ba4.size(); // Returns 6.ba4.constData(); // Returns "ca\0r\0t" without terminating \0.QByteArray x("and");x.prepend("rock "); // x == "rock and"x.append(" roll"); // x == "rock and roll"x.replace(5, 3, "&"); // x == "rock & roll"
QByteArray相关推荐
- json qbytearray 串 转_如何通过QByteArray在JSON中存储QPixmap?
无法从任意QByteArray构造QString.您需要对字节数组进行编码,使其可以首先转换为字符串.从C语义的角度来看,QString可以从QByteArray构造出来,这有点误导.它是否真的可构建 ...
- 《Qt数据类型》--QByteArray,QString,int,hex之间的转化
对于QString和QByteArray,他们都有一个toInt的静态函数,QString::toInt()是根据string的字面值转化为int类型,比如string:"123" ...
- QByteArray怎么转化为QString类型,并且在QLineEdit上面显示出来
//存文件名字QByteArray temp_filename;for (int i =128;i<257;){temp_filename.append(inbuf[i]);i+=4;}QStr ...
- Qt之QByteArray类学习
QByteArray类提供了字节数组,包含于<QByteArray>头文件中,从Q3CString类继承而来. QByteArray可以存储raw bytes和传统的8-bits的字符串, ...
- 11-Qt6 QByteArray字节数组类
字节数组类QByteArray提供一个字节数组用于存储原始字节,号称 Best array!它比使用char *更方便,该类在串口通信中经常被使用,因为串口通信数据都是一个一个的8位字节流. 1.初始 ...
- QT的QByteArray 类的使用
详细说明 QByteArray类提供字节数组. QByteArray可用于存储原始字节(包括'\ 0')和传统的8位'\ 0'终止的字符串.使用QByteArray比使用const char *更方便 ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题
代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的.如下程序中 #define DD 1的情况下:但是如果设置了全局的utf-8,再用以前的方法: QByteArray ba= ...
- Qt中 Qstring 与QbyteArray的互相转换
摘自博客:http://blog.csdn.net/xgbing/article/details/7771898 QByteArray与QString之间的转换: 示例: [cpp] view pla ...
- Qt QByteArray 转换 QString QT5.12.7
Qt QByteArray 转换 QString QT5.12.7 void MainWindow::slot_send() { const QString data = m_sendLineEdit ...
最新文章
- 阿里云安全肖力:安全基础建设是企业数字化转型的基石
- dockone上2015.08 Docker有价值文章
- Leetcode 剑指 Offer 42. 连续子数组的最大和 (每日一题 20211014)
- Linq Coding -- Part Three [Let子句]
- 修改linq结果集_UTXO集优化
- 垃圾回收机制与引用类型
- c语言冒泡结构入门程序,C语言入门:冒泡排序
- python pathlib模块_【Python Snippets】Pathlib 模块
- 4. tensorflow2实现抽样分布—卡方分布、F分布、t分布、Beta分布、Gamma分布——python实战
- OmniPlayer Pro for Mac(全能视频播放器)
- eclipse快捷方式打不开解决方法
- 清除访问网络共享文件夹密码
- 【文献阅读】Cost-Sensitive Portfolio Selection via Deep Reinforcement Learning
- 刷了几千道算法题,这些我私藏的刷题网站都在这里了!
- 到底什么是幸存者偏差?有哪些例子?
- IDEA无法启动Tomcat显示[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirector
- Broadcasts在Android7.0以及Android8.0中的变更
- 查看git密码_新电脑配置git和github
- 《玩转Spring全家桶》第70-77节
- 关于线程池的五种实现方式,七大参数,四种拒绝策略
热门文章
- 紧张的飞秋(FEIQ)爱好者汗都下来了
- 『无聊透顶』一篇很无聊的文章
- Transact-SQL数据类型(文本/图形/日期和时间/货币/特定类型)
- 经典面试题(41):以下代码将输出的结果是什么?
- 官方:Angular 5 推迟到10月底发布
- linux防火墙策略文件夹,Linux防火墙iptables的策略
- telnet后为啥打开的时防火墙_《和平精英》停服时玩家打开国际服,淘汰1个敌人后收到1个提示!...
- STM32----摸石头过河系列(一)
- Cibersort免疫浸润的在线分析及R语言代码实现
- 他为华裔写了几封信......