C++学习初级之QString

这篇博客介绍了C++中的QString类,重点讲解了如何使用+和+=操作符连接字符串,以及QString::append()函数。还探讨了利用sprintf()和arg()函数进行格式化字符串的方法,强调了arg()函数的安全性和Unicode支持。此外,文章提到了QString的数字与字符串转换功能,如number()和setNum()用于数字转字符串,toInt()和toDouble()用于字符串转数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QString提供一个二元+操作符来连接两个字符串和一个+=操作符来向一个字符串追加字符串。 因为QString在字符串的结尾处自动预分配内存,所以通过反复追加字符来增加一个字符串是非常快的。 这是一个++=结合的例子:

QString str = "User: "; str += userName + "\n";

还有一个QString::append()函数与+=操作符有这一样的功能:

str = "User: "; str.append(userName); str.append("\n");

组合字符串的一个完全不同的方式是使用QStringsprintf()函数:

str.sprintf("%s %.1f%%", "perfect competition", 100.0);

支持同样的格式说明符像C++库的sprintf()函数。 在上面的例子中,str被赋值为 "perfect competition 100.0%"。

从另外一个字符串或数字来构建字符串还有另外一种方式,就是使用arg()

str = QString("%1 %2 (%3s-%4s)") .arg("permissive").arg("society").arg(1950).arg(1970);

在这个例子中,"%1"被"permissive"替换,"%2被"society"替换,"%3"被"1950"替换,而"%4"被 "1970"替换。 结果是"permissive society (1950s-1970s)"。 arg()重载支持各种各样的数据类型。 某些重载有附加参数来控制域宽,数字基数,或浮点精度。 通常,arg()是比sprintf()更好的解决方案,因为它是类型安全(type-safe)的,完全支持Unicode,并且允许translators对"%n"参数重新排序。

QString能将数字转换为字符串,通过使用静态函数QString::number()

str = QString::number(59.6);

或者使用setNum()函数:

str.setNum(59.6);

逆向变换,就是将一个字符串转换为一个数字,使用的是toInt()toLongLong()toDouble(),等等。 例如:

bool ok; double d = str.toDouble(&ok);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值