【问题标题】:QString to String and vica versaQString 到 String,反之亦然
【发布时间】:2013-09-05 01:38:52
【问题描述】:

我正在做一个项目,其中我必须使用 QT 软件。我有一个 qt 变量,例如

QString name_device;

我正在使用 matIO 库读取一个 .mat 文件,该库具有具有相似名称的 1x3 Char 变量。谁能告诉我如何将 mat 的 1x3 Char 变量转换为 QString 变量?并且在转移到 QString 之后,我将对其进行处理,在处理之后我想再次将其保存在 .mat 文件中,为此我再次需要从 QString 转移到 1x3 Char。

这对我很有帮助。

谢谢

【问题讨论】:

  • 什么是“1x3 字符”?你能发布一个“.mat”的示例文件来看看它的样子吗?
  • name_device= ABC 如果我应用 whos 命令,它显示类:字符,大小:1x3 和字节:6.. 有帮助吗?
  • 你也可以像这样在 matlab 上写 name_device='ABC'..它会给你我想要的变量
  • 好的,如果我理解正确,请告诉我:1) 你有一个名为“my_file.mat”的文件。 2)这个文件的完整内容是name_device= ABC。 3)您希望您的 C++ 变量“name_device”在您读取文件后等于“ABC”(即等于文件的最后 3 个字符)。 4)你想修改它,比如它在处理后等于“DEF”。 5)你想把它写回文件“my_file.mat”,这样它的内容现在是name_device= DEF
  • 小修改:1) 你有一个名为“my_file.mat”的文件。 2)这个文件的全部内容是name_device=ABC。 3)您希望您的 QString 变量“name_device”在您读取文件后等于“ABC”(即等于文件的最后 3 个字符)。 4)你想修改它,比如它在处理后等于“DEF”。 5)您想将此 QString 变量写回文件“my_file.mat”,就像我读取它(即 Char)一样,以便其内容是

标签: c++ string qstring


【解决方案1】:

initialize a QString 有几种方法,包括直接从 char 数组构造它。

要从 QString 返回到 char 数组,一种简单的方法是使用方法 QString::toStdString() 将其转换为 std::string,然后使用方法 std::string::c_str() 将其转换为 char 数组。

例如:

#include <QString>
#include <cstring>
#include <cassert>

int main()
{
    char str1[] = "abc";
    QString qString = str1;
    char const* str2 = qString.toStdString().c_str();
    assert(std::strcmp(str1, str2) == 0);

    return 0;
}

但是请注意,这个简单的示例假定使用 UTF-8 编码。请仔细阅读我在此处链接的参考手册,以获得对 QString 的更详细描述。

【讨论】:

  • 亲爱的 brunocodutra..感谢您的回复..我尝试通过您的方法执行此操作,但出现错误..E​​rror 1 error C2664: 'strcmp' : cannot convert parameter 1 from 'QString' to 'const char *...请您指导一下。谢谢
  • @SaadSaadi 您将QString 的实例传递给std::strcmp,它需要char const *。请注意,std::strcmp 所做的只是比较两个 char 数组,您到底想做什么?
  • 如何先将 .mat 文件中的字符读取到 QChar 中,然后将 QChar 传输到 QString...看起来更容易...因为我有 .mat 文件中的字符...你说什么?
  • @SaadSaadi 我假设您正在逐个字符地读取字符,那么您所要做的就是使用 += 运算符将它附加到您的 QString 中。喜欢这个char c = 'a'; QString qString; qString += c;
  • 我有char c[1][3]..我正在这样做QChar temp[3]然后for(int i=0;i&lt;3;i++) temp[i]=c[0][i]然后像这样添加QString QString str(temp,3);..这是在你给的链接中完成的我..你认为它会起作用..如果是的话,那么如何反之亦然...从 QString 到 Char。
猜你喜欢
  • 2018-05-18
  • 2011-09-11
  • 2015-06-22
  • 2021-01-01
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 2014-11-08
  • 2012-02-16
相关资源
最近更新 更多