首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

qt学习笔记(二) QString

Qt则提供了自己的字符串实现:QStringQString以16位Uniode进行编码。我们平常用的ASCII等一些编码集都作为Unicode编码的子集提供。...不过前面我们也见到了Qt提供的另一种格式化字符串输出的函数arg(): str = QString("%1 %2 (%3s-%4s)")         .arg("permissive").arg(...,Qt提供了很多操作函数,例如,使用mid()函数截取子串: QString x = "Nine pineapples";   QString y = x.mid(5, 4);            ...: printf("User: %s\n", str.toAscii().data());  为了方便使用,Qt提供了一个宏qPrintable(),这个宏等价于toAscii().constData...);  我们调用QByteArray类上面的data()或者constData()函数,将获得QByteArray内部的一个const char*类型的字符串,因此,我们不需要担心内存泄漏等的问题,Qt

1.8K10

5.QT-QString

Qt中的字符串类 介绍 采用Unicode编码  采用隐式共享技术,节省内存和不必要的数据拷贝 隐式共享介于浅拷贝和深拷贝之间,当两个string对象赋值时,会实现浅拷贝(共享一块内存),如果某个对象被修改了...,则会实现深拷贝(从新开辟内存) 跨平台使用,不需要考虑不同平台的兼容性 QString直接支持字符串与数字的相互转换 QString直接支持字符串大小比较 QString直接支持不同字符编码间的相互转换...QString直接支持std::string和std::wstring的相互转换 QString直接支持正则表达式的应用 QString常用函数 static const QChar data[4]...= { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QString str(data, 4);   //通过QChar宽字符初始化 str = "hello";     //...str.toDouble(); //字符串转double val =1234.5 /*arg()成员函数:通过string串里通过“%数字”表示argument(参数) */ str = QString

88810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    QtQString 和 QByteArray

    QStringQt 内部的一种字符串数据类型,QString 支持多字节编码(unicode)的一个字符串类。在程序和网络之间传输数据时,其他的程序和网络另一端的程序是不能识别他这种数据类型的。...所以要想将 QString 类型的数据保存到文件或发送到网络,需要转换成 QByteArray 类型才可以。...QString 像 MFC 中的 CString 一样,具备很多处理字符串的成员函数,比如 mid()、size()、isEmpty()、toFloat()、toInt()等功能,具体可以参见 Qt 帮助文档...str2 = QString().sprintf("%d, %d", 1, 3); qDebug() << "sprintf format =" << str2; // 字符串格式化方式2 <em>QString</em>.../ 如果参数类型一样,也可以在一个arg中填写 <em>QString</em> str4 = <em>QString</em>("%2 this %3 is %1").arg("abc", str2, "def"); qDebug()

    44730

    QTQString、QLatin1String、QStringLiteral

    QString、QLatin1String、QStringLiteral QString QString: QString提供了一个Unicode字符串,QString存储的是一串QChar,而QChar...---- 假设QObject::setObject函数参数列表是QString类型,给它传递参数"test",这里有一个通过构造产生的从const char*到QString的隐式转换,产生一个新的QString...如果应用程序定义了QT_NO_CAST_FROM_ASCII宏 DEFINES += QT_NO_CAST_FROM_ASCII 则程序无法使用const char* 相关的API函数。...---- QLatin1String 在Qt5中,我们把char* 字符串的默认编码改成了UTF-8。但是相对纯ASCII或者latin1而言,很多算法处理UTF-8编码数据的时候会慢很多。...参数需要QString类型且QStirng可能被修改,则直接使用QString或隐式转换。

    74620

    C++ Qt开发:字符串QString容器

    Qt框架中,QString 是一个强大而灵活的字符串容器,专为处理 Unicode 字符而设计。它提供了许多方便的方法来操作和处理字符串,使得在跨平台开发中能够轻松地进行文本操作。...QStringQt 开发中不可或缺的一部分,它的灵活性和强大的功能使其成为处理文本和字符串操作的理想选择。...首先读者需要打开Qt Creator程序并新建一个Qt Console Application项目,创建选项我们可以直接采用默认配置,当创建成功后读者可看到如下图所示的默认选项; 上述案例中使用的就是命令行程序开发...1.1 连接追加与移除操作 1.1.1 字符串连接 在Qt中,字符串的定义可以使用QString str1的方式实现,我们可以使用简单的加号 + 或者 append 方法将两个字符串连接在一起。...::CaseInsensitive标志定义,而结尾则使用Qt::CaseSensitive标志。

    28910

    QString性能优化小Tips

    ❝在项目文件中添加一句DEFINES *= QT_USE_QSTRINGBUILDER即可优化QString性能。 ❞   下面的代码底层实现需要至少2个malloc。...QString space = " "; QString str = "Hello" + space + "world!";   如果最终QString的长度事先已知,则可以避免额外的malloc。...因此在Qt 4.6中引入了QStringBuilder的内部类,该类可以一次为连接链保留内存。通过使上面的每个+操作返回不同的类(不再是QString)来实现此目的。...例如: QString space = " "; QString str = "Hello" % space % "world!"...「此外我们还可以在项目文件(*.pro)中加入下列代码自动让+识别为%操作符,这样可以用最少的修改来达到QString的性能优化」。 DEFINES *= QT_USE_QSTRINGBUILDER

    1.4K30
    领券