Qt学习笔记-字符串类

本文详细介绍了Qt中的QString类,包括字符串的操作(组合、追加、插入、替换等)、查询(startsWith、endsWith、contains等)和转换(toInt、toDouble、编码转换等)。QString支持Unicode,提供高效的操作和内存管理,是Qt中处理字符串的重要工具。
摘要由CSDN通过智能技术生成

标准C++提供了两种字符串,一种是c语言风格的以'\0'结尾的字符数组,另一种是字符串类String。而Qt提供的QString功能更强大。

QString类保存16位Unicode值,提供了丰富的操作、查询和转换等函数。该类还进行使用影视共享(implicit sharing)、高效的内存分配策略等多方面的优化。

(1)操作字符串

字符串有如下几个操作符。

1)QString提供了一个二元的"+"操作符用于组合两个字符串,并提供了"+="操作符用于将一个字符串追加到另一个字符串的末尾,例如:

QString str1="Welcome";

str1=str1+"to you!"; //str1="Welcome to you!"

QString str2="Hello, ";

str2+="World!"; //str2="Hello, World!"

其中,QString str1="Welcome "传递给QString一个const char *类型的ASCII字符串“Welcome”,它将被解释为一个典型的以“\0”结尾的C类型字符串。这将会导致调用QString构造函数,来初始化一个QString字符串。其构造函数原型为:

QT_ASCII_CAST_WARN_CONSTRUCTOR QString::QString(const char * str);

被传递的const char *类型的指针又将被函数QString::fromAscii()转换为Unicode编码。默认情况下,函数QString::fromAscii()会将超过128的字符作为Latin-l进行处理(可以通过调用QTextCodec::setCodecForCString()函数改变QString::fromAscii()函数的处理方式)

此外,在编译应用程序时,也可以通过定义QT_CAST_FROM_ASCII宏变量屏蔽该构造函数。如果程序员要求显示给用户的字符串都必须经过QObject::tr()函数的处理,那么屏蔽QString的这个构造函数是非常有用的。

2)QString::append()函数具有与+=操作符同样的功能,实现在一个字符串的末尾追加另一个字符串,例如:

QString str1="Wel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值