【问题标题】:Copying the content of a character array to a QString in Qt将字符数组的内容复制到 Qt 中的 QString
【发布时间】:2012-10-19 13:53:38
【问题描述】:

我有一个字符指针,在任何运行中都可以有不同的长度。例如:

char*  myChar;

在一次运行中,它的内容可以是“Hi”,而在另一次运行中,它可以是“Bye”

我想将myChar 的内容复制到一个QString,例如如果我有:

QString myString;

我想将myChar的内容复制到myString;我该怎么做?

【问题讨论】:

  • 你为什么不使用构造函数( QString myString(myChar) )?
  • 是的,如果 mychar 是空终止的,只需使用 myString = myChar
  • 我不希望指向 myString 的指针等于指向 myChar 的指针。在部分代码中,我想将 myChar 的内容复制到 myString,但稍后当 myChar 更改时,我不希望更改 myString。
  • 什么?我确信 QString 会创建自己的 myChar 副本。这是一个假设还是您已经测试过?
  • @gogoprog 和 ahenderson:你们是对的,它自己制作副本。感谢您的帮助。

标签: c++ qt qstring character-arrays


【解决方案1】:

酌情使用QString::fromLatin1(const char*)QString::fromLocal8Bit(const char*)QString::fromUtf8(const char*)。请注意,您不能只复制数据,因为 QStrings 包含 16 位 Unicode 字符。它总是需要对 8 位表示进行解码。

【讨论】:

  • @TJ1 已经写好了。看看这里:harmattan-dev.nokia.com/docs/library/html/qt4/… 如果你的意思是代码:QString myString = QString::fromUtf8(myChar);
  • @besworland myString 是我在其他地方的类定义中定义的类变量。因此,如果我使用您显示的命令,这是否意味着它被再次定义并且将是一个局部变量而不是我的类变量?
  • Hmm.. 然后代码:this->myString = QString::fromUtf8(myChar); :)
  • @TJ1 是的,在这种情况下,它将再次定义。在您的课程中,您可以简单地为 myString 分配任何值。
猜你喜欢
  • 2015-03-29
  • 1970-01-01
  • 2012-09-21
  • 2020-09-04
  • 2010-10-27
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
相关资源
最近更新 更多