首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将QString初始化为空?

如何将QString初始化为空?
EN

Stack Overflow用户
提问于 2012-03-16 01:26:43
回答 2查看 36.9K关注 0票数 20

QString::number(0)((const char*) 0)之间的区别是什么

我想初始化一个QString,比如phoneNumber to nullphoneNumber(QString::number(0))phoneNumber((const char*) 0)都能工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-16 01:43:24

要创建空QString,只需默认初始化它:

代码语言:javascript
运行
复制
QString phoneNumber;

// or if you already have a QString variable and want to 'clear' it:

phoneNumber = QString();

请注意,QString::number(0)绝对不是空的-它创建一个值为"0"的QString。

您也可以使用NULL指针初始化QString,但我不推荐这样做,除非您正在传递一个指针,而不管它是否为NULL (例如,它有时可能指向一个C字符串),因为这是不必要的。

您还应该了解following Qt docs

空字符串和空字符串的

区分

由于历史原因,QString区分空字符串和空字符串。空字符串是使用QString的默认构造函数或通过将(const char *)0传递给构造函数初始化的字符串。空字符串是大小为0的任何字符串。空字符串始终为空,但空字符串不一定为空:

QString().isNull();//返回true QString().isEmpty();//返回true QString("").isNull();//返回false QString("").isEmpty();//返回true QString("abc").isNull();//返回false QString("abc").isEmpty();//返回false

isNull()之外的所有函数都将空字符串视为空字符串。例如,对于空字符串(非空指针),toAscii().constData()返回指向'\0'字符的指针,而QString()比较等于QString("")。我们建议您始终使用isEmpty()函数并避免使用isNull()

票数 45
EN

Stack Overflow用户

发布于 2014-09-14 16:41:45

代码语言:javascript
运行
复制
#include <QCoreApplication>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString name(QString::null);
    // or QString name = QString::null;
    // or QString name;

    qDebug() << name.isNull();
    qDebug() << name;

    return a.exec();
}

输出:

代码语言:javascript
运行
复制
true
""

Michael Burrs solution is of course also correct... But I like theQString::null`更多。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9724966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档