😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
⏰发布时间⏰: 2024-09-24 09:10:24
本文未经允许,不得转发!!!

![]()
标准 C++ 提供了两种字符串: 一种是 C 语言风格的以 字符结尾的字符数组;另 一种是字符串类 。 而 Qt 字符串类 的功能更强大。
QString 类保存 16 位 Unicode 值,提供了丰富的操作、查询和转换等函数。该类还进行了使用隐式共享 (implicit sharing) 、高效的内存分配策略等多方面的优化。
QString存储一个16位字符串,其中每个对应一个编码单元。(编码值大于65535的Unicode字符使用代理对存储,即两个连续的。)
Unicode是一个国际标准,支持目前使用的大多数书写系统。它是US-ASCII (ANSI X3.4-1986)和Latin-1 (ISO 8859-1)的超集,并且所有US-ASCII/Latin-1字符都在相同的代码位置上可用。
实现时,QString使用隐式共享(implicit sharing,也就是写时复制)来减少内存使用并避免不必要的数据复制。这也有助于减少存储16位字符而不是8位字符的固有开销。
除了QString, Qt还提供了QByteArray类来存储原始字节和传统的8位’0’结尾的字符串。在大多数情况下,QString是您想要使用的类。 它在整个Qt API中使用,并且Unicode支持确保如果您希望在某个时候扩展应用程序的市场,您的应用程序将易于翻译。适合使用QByteArray的两种主要情况是:当您需要存储原始二进制数据时,以及当内存比较紧张时(如在嵌入式系统中)。
![]()
QString 的构造函数有下面几个:
其中,最简单的,也最常用的是,直接用一个以结尾的字符串给QString对象初始化,如下:
下面是其他构造函数例子:
其中,QLatin1String类提供了 US-ASCII/Latin-1 编码字符串字面值的薄包装。
如果实例化一个 QString 对象后,可以使用 运算符给该对象赋值,函数原型如下:
🌰举例子:
🎯运行结果:

添加字符串到 QString 对象尾部的相关函数原型如下:
上面这几种最常用的是运算符,使用比较方便,而且可以连续加,如:a+b+c。
🌰举例子:
🎯运行结果:

🌰举例子:
🎯运行结果:

🌰举例子:
🎯运行结果:

添加字符串有好几种方式,最常用的是直接使用运算符,下面给出添加字符串的函数原型:
🌰举例子:
🎯运行结果:

![]()
本小节介绍从 对象删除一段字符串、清空整个QString对象等操作。
清除字符串的内容并设置为 null,执行这个函数后,调用会返回
🌰举例子:
🌰举例子:
相关函数原型如下:
🌰举例子:
🌰举例子:
🌰举例子:
![]()
将字符串的大小设置为size字符。
如果size大于当前大小,则扩展字符串以使其长度为字符长,并将额外的字符添加到末尾。新字符未初始化。
如果size小于当前大小,则从末尾删除字符。
🌰举例子:
🌰举例子:
🌰举例子:
![]()
🌰举例子:
🌰举例子:
🎯运行结果:

的区别:是查询除了之外,还有没有字符;是只有在没有任何字符时才有true。
🌰举例子:
🎯运行结果:

🌰举例子:
🌰举例子:
🌰举例子:
🌰举例子:
🎯运行结果:

🌰举例子:
🎯运行结果:

![]()
写太多了,几乎翻译了Qt文档里的内容,其他的以后用到再补充吧!!!

如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/4828.html