如何由qstring转化为char数组

 我来答
百度网友79faf363
2019-11-24 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:54.4万
展开全部

qstring转化为char数组:

QString str="12fff";

QByteArray ba=str.toLatin1();

char *c=ba.data();

解析:

toLatin1QString转QByteArray的方法,Latin1代表ASCII。

const char*:指向字符常量的指针

const char * ss= "xxxxxx";    

表示的是指针指向的内容不可修改。

char * const ss = "xxxxxx";  

表示这是一个指针常量,再不能指向其他地址,比如ss= ...是不允许的。
const char * const ss ="" ; 

指针不可修改,指向的内容也不可以修改。

扩展资料:

char数组转化成为QString:

char c[]="12ff";

QString str=QString(QLatin1String(c));

对于字符串的:

/0 表示结束符,比如C语言加的数组中,最后有个默认的 /0 表示结束。

/0 不是空格,’ ’ 才是空格。
“” 就是“一个空的字符串”。

四舍五不入6
高粉答主

2020-01-31 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.2万
展开全部

可以参考下面的代码:

先将QString转换为QByteArray,再将QByteArray转换为char * 

view plain

//#include "teclass.h"  

#include <QtGui/QApplication>  

#include <QtDebug>  

#include <QString>  

int main(int argc, char *argv[])  

{  

QApplication a(argc, argv);  

QString str = “hello”; //QString转char *  

QByteArray ba = str.toLatin1();  

char *mm = ba.data();  

qDebug()<<mm<<endl;  //调试时,在console中输出  

return a.exec();  

}

扩展资料:

char数组转化成为QString:

char str[64];

QTextCodec *textcod = QTextCodec::codecForName("GBK");

QCString string1 = textcod ->fromUnicode(listbox1->currentText());

strcpy(str,string1);

QString和Std::string

从char*到 QString可以从fromLocal8Bit()转化

std::string有c_str()的函数使再转化为char*

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
追忆小土豆
2017-08-28 · TA获得超过7739个赞
知道大有可为答主
回答量:4890
采纳率:0%
帮助的人:1470万
展开全部
方法如下:
Qstring str;
char* ch;
QByteArray ba = str.toLatin1();
ch=ba.data();
这样就完成了QString向char*的转化。经测试程序运行时不会出现bug
注意第三行,一定要加上,不可以str.toLatin1().data()这样一部完成,可能会出错。

补充:以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char*就是乱码,采用如下方法解决:
方法1:
添加GBK编码支持:
#include <QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
然后改变上面的第三行为:QByteArray ba = str.toLoacl8Bit(); toLoacl8Bit支持中文
方法2:
先将QString转为标准库中的string类型,然后将string转为char*,如下:
std::string str = filename.toStdString();
const char* ch = str.c_str();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
窒息de琦
2017-08-06 · TA获得超过166个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:58.9万
展开全部
先将QString转换为QByteArray,再将QByteArray转换为char *
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式