您的位置:首页 > 编程语言 > C语言/C++

C++学习初级之QString

2016-09-12 22:42 330 查看
QString提供一个二元+操作符来连接两个字符串和一个+=操作符来向一个字符串追加字符串。 因为QString在字符串的结尾处自动预分配内存,所以通过反复追加字符来增加一个字符串是非常快的。
这是一个+和+=结合的例子:
QString str = "User: "; str += userName + "\n";

还有一个QString::append()函数与+=操作符有这一样的功能:
str = "User: "; str.append(userName); str.append("\n");

组合字符串的一个完全不同的方式是使用QString的sprintf()函数:
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: