首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户2442861的专栏

    qt学习笔记(二) QString

    今天要说的是QString。 Qt则提供了自己的字符串实现:QStringQString以16位Uniode进行编码。我们平常用的ASCII等一些编码集都作为Unicode编码的子集提供。 在使用QString的时候,我们不需要担心内存分配以及关于'\0'结尾的这些注意事项。QString会把这些问题解决。通常,你可以把QString看作是一个QChar的向量。 QString可以自动的对占用内存空间进行扩充,这种连接操作是恨迅速的。 例如: QString str = QString::number(54.3);  你也可以使用非static函数setNum()来实现相同的目的: QString str;   str.setNum

    2.3K10发布于 2018-09-20
  • 来自专栏全栈程序员必看

    QStringList与QString互转

    QStringList fonts; fonts << "Arial" << "Helvetica" << "Times" << "Courier"; QString str = fonts.join( ","); QString str = "name1,path1;name2,path2;name3,path3"; QStringList list1 = str.split(";"); //

    86210编辑于 2022-08-11
  • 来自专栏跟Qt君学编程

    QString性能优化小Tips

    QString space = " "; QString str = "Hello" + space + "world!";   如果最终QString的长度事先已知,则可以避免额外的malloc。 通过使上面的每个+操作返回不同的类(不再是QString)来实现此目的。此类跟踪每个步骤中要附加的字符串和所需的内存。 在最后一步转换为QString时,它将在一次分配所需内存,并按顺序复制链中的所有字符串。    例如: QString space = " "; QString str = "Hello" % space % "world!" 通过内联和减少引用计数可以获得额外的效率(从QStringBuilder创建的QString通常有一个1的引用计数,而QString::append()需要额外的测试花销)。

    1.6K30发布于 2020-04-01
  • 来自专栏跟Qt君学编程

    QString的indexOf匹配问题

    问题重现   先看例子: QString string("hello\0world!")

    4K20发布于 2019-07-15
  • 来自专栏跟Qt君学编程

    QString之arg

    QString arg(const QString &a1, const QString &a2) const QString arg(const QString &a1, const QString QString &a4) const QString arg(const QString &a1, const QString &a2, const QString &a3, const QString QString &a4, const QString &a5, const QString &a6) const QString arg(const QString &a1, const QString const QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString

    1.1K10发布于 2020-02-13
  • 来自专栏Linux驱动

    5.QT-QString

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

    1.1K10发布于 2018-05-28
  • QString和Std::String

    qt基于qt 5.15.2版本 std::string则基于C++20 QString QString是Qt框架中的一个字符串类,它提供了一种高效、可扩展的字符串处理方法。 QString的内存模型主要基于以下几个方面: 隐式共享(Implicit Sharing):QString使用隐式共享来实现内存管理。 字符编码:QString支持多种字符编码,如UTF-8、UTF-16和UTF-32。这使得QString能够处理各种语言和字符集。在内部,QString使用UTF-16编码来存储字符串。 QString实际会将持有的字符串保存在其私有成员变量中 typedef QStringData Data; private:   Data *d; inline QString::QString() noexcept : d(Data::sharedNull()) {} inline QString::~QString() { if (!

    1.2K10编辑于 2024-06-12
  • 来自专栏jiajia_deng

    Qt 中 QString 和 QByteArray

    QString 是 Qt 内部的一种字符串数据类型,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()

    93630编辑于 2023-10-20
  • 来自专栏Qt_5_F

    QT基础数据类型-QString

    "; //+= 操作符 追加字符串 qDebug()<<qPrintable(str2); //2:QString::append() 追加字符串 QString str3 = QString::sprintf() QString str5 ; str5.sprintf("%s %d %s", "When I wake up at", 6, "alock"); 参数顺序 QString str6; str6 = QString("%1 was born in %2").arg("I").arg(2000); qDebug()<<qPrintable QString查询字符串方式 //1:Qstring::startwith()函数 字符串以某字串开头 //对于的QString::endWith() 以某字串结尾 QString <a1 <<" b " << b1; //5:Qt将QString转换成对应的ASCII码 QString str9 = "ABC abc"; QByteArray bytes = str9

    24510编辑于 2025-12-03
  • 来自专栏阿林前端开发攻城狮

    QString和QDateTime之间的相互转换

    QDateTime是Qt中常用的日期时间类,我们经常会将其转换为QString类型,或者进行相反转换,具体方法如下。 1、QDateTime 转换为 QString QString QDateTime::toString ( Qt::DateFormat format = Qt::TextDate ) const QString currentTime();//以固定的时间格式yyyy-MM-dd hh:mm:ss保存为字符串strDate = time.toString("yyyy-MM-dd hh:mm:ss");  2、QString 转换为QDateTime QDateTime QDateTime::fromString(const QString& string, const QString& format) [static] / /定义日期 QString dateContent = "2016-02-19 22:11:33" ; QDateTime time; time = QDateTime::fromString(dateContent

    2.9K20发布于 2021-10-29
  • 来自专栏跟Qt君学编程

    QString的arg的思考

      使用Qt的arg格式化以下字符串: QString marjor = "2"; QString minor = "0"; QString patch = "1"; QString str = QString 文档,遗憾的是QString的arg方法并不支持上述这种方法。 在查看QString官方文档中看到这段话: QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char 既然文档提到替换操作,那么我们可以使用QString的replace操作实现。比如这样: QString str("Version: v%{marjor}.%{minor}. QString str("Version: v{marjor}.{minor}.

    73530编辑于 2023-03-17
  • 来自专栏跟Qt君学编程

    QString使用正则操作的接口

    介绍QString使用正则操作的接口。   Qt 5.0引入QRegularExpression,相比于QRegExp,前者修复了很多bugs,功能上也是兼容于QRegExp。 QString &remove(const QRegExp &rx)QString &remove(const QRegularExpression &re) replace 将字符串中符合正则表达式 QString &replace(const QRegExp &rx, const QString &after)QString &replace(const QRegularExpression &re , const QString &after) section 将字符串由正则表达式来分割字段序列。 QString section(const QRegExp ®, int start, int end = -1, QString::SectionFlags flags = SectionDefault

    1.8K30发布于 2019-12-12
  • 来自专栏跟Qt君学编程

    QString的isEmpty与isNull区别

    QString().isEmpty(); // returns true QString("").isEmpty(); // returns true QString("ABC").isEmpty QString().isNull(); // returns true QString("").isNull(); // returns false QString("ABC").isNull 对于大多数应用程序,重要的是字符串是否包含任何数据,这可以使用isEmpty()函数来确定; (2)无效的字符串指的是QString没有初始化,这也是isEmpty与isNull的区别; (3)无论QString 有没有初始化,QString()与QString("")的isEmpty都为真,而QString()的会被判定为无效字符串。

    3K10发布于 2019-07-15
  • 来自专栏全栈程序员必看

    QT QStringList 与 QString 常用方法

    本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法。 其他常用方法 //QString定义 QString s1 = "hello"; QString s2("world"); //字符串连接 QString str = s1 + s2; //组包 << "endsWith(\"#\")"; } //判断QString是否空 qDebug() << "QString().isEmpty()" << QString().isEmpty(); / /true qDebug() << "QString("").isEmpty()" << QString("").isEmpty(); //true qDebug() << "QString(" ") "QString("").isNull()" << QString("").isNull(); //false qDebug() << "QString(" ").isNull()" << QString

    1.5K10编辑于 2022-08-13
  • 来自专栏跟Qt君学编程

    QString较少用到的接口

    接口: QString QString::trimmed() const   示例: QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed QString str = " lots\t of\nwhitespace\r\n "; str = str.simplified(); // str == "lots of whitespace"; 0x02 QString转QStringList QStringList QString::split(const QString &sep, , "c" ]   另外QStringList转QString可以使用以下接口: QString QStringList::join(const QString &separator) const 0x03 截取指定位置内容 void QString::truncate(int position)   示例: QString str = "Hello world"; str.truncate(5); //

    1K20发布于 2019-11-04
  • 来自专栏半生瓜のblog

    【QT】QString、QLatin1String、QStringLiteral

    QString、QLatin1String、QStringLiteral QString QString: QString提供了一个Unicode字符串,QString存储的是一串QChar,而QChar ---- 假设QObject::setObject函数参数列表是QString类型,给它传递参数"test",这里有一个通过构造产生的从const char*到QString的隐式转换,产生一个新的QString QString提供了很多的成员函数使用const char*而不是QString类型的字符串实现重载,包括拷贝构造、赋值运算、比较运算及其他的函数,如插入insert()、替换replace()、和indexOf 为避免不必要的内存开销(构造QString对象时涉及的内存分配、拷贝数据及数据转换成QString的内部编码这些开销)QLatin1String产生了,它是const char* 的一层薄薄的封装。 参数需要QString类型且QStirng可能被修改,则直接使用QString或隐式转换。

    1.6K20编辑于 2023-05-13
  • 来自专栏全栈程序员必看

    QString与char *的相互转换

    那么问题来了,QString 和 char * 之间如何进行转换呢? 下面分两种情况进行说明。 一、QString 转换为 char * 将 QString 转 char *,需要用到 QByteArray 类,QByteArray 类的说明详见 Qt 帮助文档。 方法如下: QString str; char* ch; QByteArray ba = str.toLatin1(); // must ch=ba.data(); 这样就完成了 QString 向 补充:以上方法当 QString 里不含中文时,没有问题,但是 QString 内含有中文时,转换为 char * 就是乱码,采用如下方法解决: 方法1: 添加GBK编码支持: #include <QTextCodec 、 char * 转换为 QString 将 char * 转换为 QString 比较容易操作,我们可以使用 QString 的构造函数进行转换: QString(const QLatin1String

    4.9K20编辑于 2022-08-26
  • 来自专栏ccf19881030的博客

    Qt中QString与std::string的相互转换

    在Qt中QString和std::string转换非常简单, 1、std::string转QString std::string str = "hello wrold!" ; QString qstr = QString::fromStdString(str); 2、QString转std::string QString qstr = "hello wrold!"

    1.4K20发布于 2021-04-19
  • 来自专栏嵌入式技术笔记

    QString字符串的查找与截取实例

    QString是Qt中封装的字符串类,相对于标准库里的string,使用方法有些不同,个人感觉使用qt习惯后,感觉QString更好用,下面的代码主要是针对QString的字符查找、截取做的测试: # include <QCoreApplication> #include <QDebug> void testQString() { QString str = "192.168.1.100

    3.9K30发布于 2021-05-31
  • C++ Qt开发:字符串QString容器

    QString str = "Hello, LyShark!" QString str = "Hello, LyShark!" QString str = "Hello, LyShark!" Str1 = "hello"; QString Str2 = "lyshark"; QString temp; temp = Str1 + " " + Str2; std ; std::cout << Str1.toStdString().data() << std::endl; QString Str2; Str2 = QString("%1

    1.1K10编辑于 2023-12-10
领券