如何由qstring转化为char数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何由qstring转化为char数组相关的知识,希望对你有一定的参考价值。

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 不是空格,’ ’ 才是空格。
“” 就是“一个空的字符串”。

参考技术A

可以参考下面的代码:

先将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*

参考技术B 方法如下:
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();本回答被提问者采纳
参考技术C 先将QString转换为QByteArray,再将QByteArray转换为char *

以上是关于如何由qstring转化为char数组的主要内容,如果未能解决你的问题,请参考以下文章

QT Qstring怎么转化成char[],不是char*

怎么把unsigned char数组转化为字符串类型

char数组怎么转化成qstring

Qt中Qstring,char,int,QByteArray之间到转换(转)

从 UTF-8 QString 中提取字节

如何将char类型数组转换为unicode字符串