请问大神如何将Qstring转化为一个char? 20

请问大神如何将Qstring转化为一个char?不是char*,也不是char[],就是一个char界面中从文本框中获得的数据类型为QString就是这个函数ui->li... 请问大神如何将Qstring转化为一个char? 不是char*,也不是char[],就是一个char

界面中从文本框中获得的数据类型为QString 就是这个函数ui->lineEdit_3->text()

我本意是这样的:从文本框中输入一个字符比如a,如何把这个字符赋值给一个char型的变量呢?

直接赋值就显示错误:cannot convert 'QString' to 'char' in initialization

刚学两天,请大神指教。​
用的是qt creator,我尝试着用ui->lineEdit_3->text().toInt()转换成int型,然后再强制转换为char,但是却是只油输入ascii码才显示对应的字符。我想的是输入一个字符就把这个字符赋值给一个char并显示这个字符。。
展开
 我来答
百度网友c13f9bc
2016-05-31 · TA获得超过6155个赞
知道小有建树答主
回答量:6813
采纳率:3%
帮助的人:810万
展开全部
  相互转换,参考示例如下:
  1.从QString转换为char *  
  要实现把一个QString转换为char *,一般遵循这样的步骤:
  第一步,对该QString对象调用QString的toLatin1()方法,以获得该字符串的latin1值。  
  注意toLatin1()的原型如下:QByteArray QString::toLatin1 () const
  它将返回一个QByteArray。  
  示例:
  QString qstr = "convert"
  QByteArray ba = qstr.toLatin1();  
  第二步,对第一步得到的QByteArray对象调用data()方法,以获得指向存储于这个数组中数据的指针。
  示例:
  const char *cstr = ba.data();  
  完整的一个控制台程序如下:
  int main(int argc, char **argv)
  {
  QApplication app(argc, argv);

  QString qstr = "convert";
  QByteArray ba = qstr.toLatin1();
  const char *cstr = ba.data();
  printf("cstr: %s", cstr); //输出显示
  return app.exec();

  }  
  当然也有其他方法,基本的差异在于使用toLatin1()还是使用QString的toStdString方法,或者是QString的.toLocal8Bit()方法,后续步骤不变。大家可以自行试验。
  2.把char*转换为QString。
  最为方便的做法是以一个QLatin1String对象作为参数,来调用QString的构造函数
  示例:
  const char *cstr;
  QString qstr= QString(QLatin1String(cstr));
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式