本文主要是介绍Qt--QString,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、Qt字符串类–QString
QString类是Qt提供的功能十分强大的字符串类,由QtCore共享库实现。标准C++提供了两种字符串:C语言风格的以“\0”字符结尾的字符数组和字符串类String。而QString类提供了了一种Unicode字符串类。QString类内部存储了16bit的QChar字符,每个QChar字符代表一个Unicode4.0字符。Unicode字符集是ASCII和Latin-1字符集的超集,能够表示世界上绝大多数书写系统中的字符。QString类采用隐式共享(implict sharing)来减少对内存的使用和避免没必要的数据复制操作,同时,QString变量中不仅可以包含“\0”,而且我们也不必担心字符串数组要以“\0”结尾,这些QString类都帮我们处理好了。QString类还提供了丰富的操作函数,可以非常方便地进行字符串操作和QString类与其他数据类型的转换。
二、QString初始化
Qt官方文档给出了QString变量5种初始化的方式,下面举例3种常用的方式。
QString str1 = "Hello World!";static const QChar str_data[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};QString str2(str_data, 12); // QString str2(str_data, sizeof(str_data)/2);QString str3;str3.resize(12);str3[0] = QChar('H');str3[1] = QChar('e');str3[2] = QChar('l');str3[3] = QChar('l');str3[4] = QChar('o');str3[5] = QChar(' ');str3[6] = QChar('W');str3[7] = QChar('o');str3[8] = QChar('r');str3[9] = QChar('l');str3[10] = QChar('d');str3[11] = QChar('!');qDebug() << str1 << str2 << str3;
Qchar类中没有获得其数组长度的成员函数,但是由于QChar为16bit的Unicode字符,所以可以通过sizeof()/2来获取QChar数组的长度。
三、QString操作
1 组合
QString类提供了很多种组合字符串的方法如下:
(1) “+”和“+=”操作符重载
QString str1 = "Hello ";QString str2 = "World!";QString str3 = str1 + str2;QString str3 = str1 + "World!";QString str1 += "World!";
需要注意的是,使用”+”和”+=”进行QString连接时,操作数必须至少有一个是QString类,否则无法重载操作符。
(2) append(), prepend(), insert()函数
QString str1 = "Hello ";QString str2 = "World!";str1.append("World!"); // 在字符串str1最后插入字符串"World!"str2.prepend("Hello "); // 在字符串str2最前面插入字符串"Hello "QString str3 = "World!"; str3.insert(0, str2); // 在字符串str3位置0处插入字符串str2
(3) sprintf()函数
QString str1, str2;str1.sprintf("%s", "He
这篇关于Qt--QString的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!