当前位置: 首页 > news >正文

QString和QByteArray的区别

QString和QByteArray的区别

  • 本质
  • 格式转换
  • QString字符串格式化打印
  • 长度

本质

QString是对QByteArray的再次封装

在这里插入图片描述

QString可以通过char*来构造,也可以通过QByteArray来构造

QByteArray就是char*
QString是编码后的char*

QString也是封装了字符串, 但是内部的编码为utf8, UTF-8属于Unicode字符集, 它固定使用多个字节(window为2字节, linux为3字节)来表示一个字符

QByteArray可以看做是c语言中 char*的升级版本。我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据

格式转换

可以将QString转换为QByteArray
在这里插入图片描述

QString ->QByteArray ->char*

    qDebug()<<"char* to QString";char* c_str = "hello";QString string  = QString (QLatin1String(c_str));qDebug()<<string;qDebug()<<"QString to char* (two step)";QString string2("hello2");std::string a1 = string2.toLocal8Bit().data();std::string a2 = string2.toLatin1().data();std::string a3 = string2.toUtf8().data();std::cout<<a1<<std::endl;std::cout<<a2<<std::endl;std::cout<<a3<<std::endl;

在这里插入图片描述

QString字符串格式化打印

 QString aa = QString("大家好,我是(%1),我的工号是(%2),我宣布(%3)!!!").arg("王健林").arg(001).arg("取消加班");qDebug()<<aa;

在这里插入图片描述

长度

QString计算的是字符数目
QByteArray计算的是字节数(汉字3字节,英文1字节,数字1字节)

    QString a1 = "我a1";QByteArray a2 = "我a1";qDebug()<<a1.length()<<a2.length();

在这里插入图片描述

http://www.lryc.cn/news/95545.html

相关文章:

  • Vue3 Vite electron 开发桌面程序
  • 【Nodejs】Express模板使用
  • 【iOS】App仿写--管理系统
  • JS实现队列的数据结构
  • title: 用 LangChain 构建基于资料库的问答机器人(四):通过代理使用外部工具
  • 使用 CSS 自定义属性
  • Unity 性能优化一:性能标准、常用工具
  • 【http长连接+池化】
  • opencv-20 深入理解HSV 色彩空间(通过指定,标记颜色等来拓展ROI区域)
  • python调用arcgis功能一例
  • Spring MVC 是什么?
  • Rust操作MySQL
  • JAVA面试总结-Redis篇章(二)——缓存击穿
  • Spring相关知识点
  • Nginx专题--反向代理(未完成)
  • 什么是搜索引擎?2023 年搜索引擎如何运作?
  • Spring系列一:spring的安装与使用
  • Ubuntu--科研工具系列
  • 【压测指南|压力测试核心性能指标及行业标准】
  • spark-submit --files
  • 应该选云服务器还是物理服务器
  • 【iOS】动态链接器dyld
  • RocketMQ集成Springboot --Chapter1
  • 【Unity3D日常开发】Unity3D中比较string字符串的常用方法
  • vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示
  • 华为eNSP:isis配置跨区域路由
  • IUPAC和SMILES的相互转换
  • 逻辑回归概述
  • React 框架下自己写一个braft编辑器,然后将编辑器内容展示在网页端
  • 基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真