Qt之Qstring

                                                  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"

相关推荐

  1. QtQstring

    2024-02-23 02:54:03       46 阅读
  2. Qt-QString

    2024-02-23 02:54:03       61 阅读
  3. Qt——QString 只保留数字

    2024-02-23 02:54:03       30 阅读
  4. Qt+Vs踩坑QString转std::string中文乱码

    2024-02-23 02:54:03       62 阅读
  5. Qt5】QString的成员函数arg

    2024-02-23 02:54:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 02:54:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 02:54:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 02:54:03       87 阅读
  4. Python语言-面向对象

    2024-02-23 02:54:03       96 阅读

热门阅读

  1. LeetCode 每日一题 2024/2/12-2024/2/18

    2024-02-23 02:54:03       43 阅读
  2. 前端 Vue启动本地(.exe)文件

    2024-02-23 02:54:03       58 阅读
  3. 解决C++ undefined reference to vtable问题

    2024-02-23 02:54:03       54 阅读
  4. exit()、_exit()和_Exit()终止程序运行

    2024-02-23 02:54:03       48 阅读