Qt中的QString与char*的转换

  对于这些基本的数据类型的转换有时会弄得我们很头疼。不会写,不敢写,写了怕错。虽然现在跑qt下了,这不遇见了第一次需要数据类型转换的时候了。

  先说Qt中的QString如何转char*吧。

int main(int argc, char **argv)
{
QApplication app(argc, argv);
QString str1 = “Test”;
QByteArray ba = str1.toLatin1();
const char *c_str2 = ba.data();
printf(“str2: %s”, c_str2);
return app.exec();
}
  这里得注意,中间的ba变量是必不可少的,不能直接用str1.toLatin1().data()。

  然后就是char*转QString:

  方法一:QString string = QString(QLatin1String(c_str2)) ;

  方法二:如果是中文系统,直接用 (const char*) str.local8Bit()
      例如
         printf(“%s”, (const char*) str.local8Bit());
         str是一个QString

  记录了一些自己学习过程中的知识,希望对你有帮助,也希望转载能保留原文地址。谢。

本文固定链接: http://liusir.name/qt-in-the-qstring-and-char-conversion.html | 民警小刘

你可能感兴趣的:(Qt中的QString与char*的转换)