Qt之Qstring

本文详细介绍了QString类在Unicode编码、内存效率、平台兼容性、字符串与数字转换、大小比较、std::string转换以及正则表达式支持等方面的特性,以及初始化和修改字符串的方法。
摘要由CSDN通过智能技术生成

                                                  Qstring 类的特点

 QString类有如下特点:

(1)采用 Unicode 编码,所以一个QChar 类对象占用两个字节。
(2)使用隐式共享技术来节省内存和减少不必要的数据备份。
(3)跨平台使用,不用考虑字符串的平台兼容性。
(4) QString类直接支持字符串和数字之间的相互转换。
(5)QString 类直接支持字符串之间的大小比较(按照字典顺序)。
(6) QString类直接支持不同编码下的字符串转换。

(7)QString 类直接支持 std::string 和 std::wstring之间的相互转换。
(8) QString类直接支持正则表达式的使用。

1. 初始化

通常有两种方法可以初始化 QString 类的对象。
第一种方法是通过构造函数。
QString类的构造函数较多,通常有如下几种用法://使用QChar数组中长度为size个的字符来构造字符串,即初始化

QString ( const QChar * unicode, int size );
QString ( const QChar * unicode ); //使用 QChar 数组构造 QString,结尾以'\o'结QString ( QChar ch );

QString ( QChar ch );//使用 QChar 数组构造 QString,结尾以'\o'结
Qstring ( int size, QChar ch ); //使用size个ch字符来构造
QString ( const QLatin1String & str ); //使用**单字节编码**的 str 构造 QStringQString ( const QString & other ); 
QString ( const QByteArray & ba ); //使用其他QString 引用构造新的 QStrina//使用字符串常量构造 QString
QString ( const char * str );//使用字节数组构造 QString

例如,以下代码创建一个长度为5的字符串,内容为“Hello” :

QString str("Hello");
效果等同于直接赋值:QString str = "Hello";

又比如:static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
// 使用了构造函数QString ( const QChar * unicode, int size );
QString str(data, 4);
第二种方法是使用 resize()设置字符串的大小,并初始化字符数组中的每个元素。
比如:QString str;
str.resize (4);
str.resize (4);
str[0] = QChar ('U');

str[1] = QChar('n');

str[2] = QChar (0x10e3);

str[3] = QChar(0x03a3);


QString 类的索引值从 0 开始,和 C++的数组一样。

调用 resize)函数后,新分配的字节有未定义的值。
要将所有字节设置为同一个特定值,可以调用 fillO函数,该函数的原型声如下:QString::fill ( QChar ch, int size = -1 );
其中,ch 是要填充的字符;
size 是要填充的字符个数,即填充 size 个 ch 字符。
比如:QString str = "Berlin";
str.fill('z');// str == "zzzzzz"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者..................

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值