Qt从入门到放弃——字符串详解(一)

Qt的字符串特点

标准C++提供了两种字符串:
一种是C语言风格的以“0”字符结尾的字符数组; 另一种是字符串类 String。
而Qt字符串类 STring的功能更强大。STring类保存16位 Unicode值,提供了丰富的操作、查询和转换等函数。该类还进行了 使用隐式共享( implicit sharing) 、高效的内存分配策略等多方面的优化。

操作字符串

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

 QString str1 = "welcome";
 str1 =str1 + "to you ! "; // equal "welcome to you ! "
 
 QSrting str2 = "Hello,";
 str2+="World ! ";        //equal "Hello,World ! "

在此之前需要初始化这个字符串,构造函数原型为:

QT_ASCII_CAST_WARN_CONSTRUCTOR QString::QSring(const char*str)

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

QString str1 = "Welcome";
QString str2 = "to ";
str1.append(str2);           //str1 ="Welcome to"
str1.append("you! ");        //str2 ="Welcome to you!"

(3)组合字符串的另一个函数是 STring::sprintf(),此函数支持的格式定义符和C++库中的函数 sprintf()定义的一样。例如:

QString str;
str.sprintf("%s","Welcome ");  //str ="Welcome"
srt.sprintf("%s","to you! ");  //str ="to you!"
str.sprintf("%s %s","Welcome","to you! "); //str ="Welcome to you! "

(4)Qt还提供了另一种方便的字符串组合方式,使用 String:arg()函数,此函数的重载可以处理很多的数据类型。此外,一些重载具有额外的参数对字段的宽度、数字基数或者浮点数精度进行控制。通常, 相对于String: sprintf()函数, String;arg()函数是一个比较好的解决方案,因为其类型安全,完全支持 Unicode,并且允许改变%n"参数的顺序。例如:

Qstring str;
str = Qstring("%1 was born in %2."),arg("John"),arg("1998");//str="John was born in 1998."

其中,“%1”被替换为John,“%2”被替换成1998. 1、2可以调换顺序。
(5)String 也提供了一些其他组合字符串的方法,包括如下几种。
① insert()函数:在原字符串特定的位置插入另一个字符串。
② prepend()函数:在原字符串的开头插入另一个字符串。
③ replace()函数:用指定的字符串代替原字符串中的某些字符。

(6)很多时候,去掉一个字符串两端的空白(空白字符包括回车字符“n”、换行字符“r”制表符“t”和空格字符“”等)非常有用,如获取用户输入的账号时。
① String: trimmed函数:移除字符串两端的空白字符。
② String: simplified函数:移除字符串两端的空白字符,使用单个空格字符“”代替字符串中出现的空白字符。例如:

Qstring str="Welcome \t to \n you!";
str =str.trimmed();    //str="Welcome \t to \n you!"

上述代码如果使用str=str。trimmed(),则str的结果是“Welcome to you!”

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值