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);
这是一个+和+=结合的例子:
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);
相关文章推荐
- C语言生成服从均匀分布, 瑞利分布, 莱斯分布, 高斯分布的随机数
- C++的友元
- C++ hdoj 2044 一只小蜜蜂
- c++ primer plus 学习笔记(1)——复制构造函数与赋值运算符
- Unreal Engine 4 AI (二)用C++和Behavior Tree & Blackboard 实现简单追踪AI
- 洛谷 P1072 [NOIP2009 T2] Hankson 的趣味题
- C++ 引用和指针
- C语言指针
- 俄罗斯方块游戏
- C++学习基础之基类和派生类
- C语言指针总结
- C++ map巧解题
- C++杂碎&敲过的代码
- 我认为我还是在C语言方面学得不好
- 几个常用函数的实现strcpy、 strncpy、 strncat 、 strcmp、 strlen
- C++中的delete和delete[]的区别
- STC89C52单片机实验1-点亮一个发光二极管
- manacher最长回文序列c++
- *c[];**cp[]和*cpp题目详解
- c++中处理输入输出的方法