1、char * 与 const char *的转换
char *ch1="hello11";
const char *ch2="hello22";
ch2 = ch1;//不报错,但有警告
ch1 = (char *)ch2;
2、char 与 QString的转换
char 转换为 QString
其实方法有很多中,我用的是:
char a='b';
QString str;
str=QString(a);
QString 转换为 char
方法也有很多种
QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();
注意:在调用QByteArray.data()之前,必须要先显示储存这个bytearray。像这样const char *ch = str.toLatin1().data();会使程序崩溃,因为QByteArray没有被储存,调用data()前是不存在的,必须先显式调用一次toLatin1(),再调用data()。
3、QByteArray 与 char* 的转换
QByteArray 转换为 char *
char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();
char * 转换为 QByteArray
char *ch;
QByteArray byte;
byte = QByteArray(ch);
4、QString 与 QByteArray 的转换
QString转换为QByteArray
QByteArray byte;
QString string;
byte = string.toAscii();
QByteArray 转换为 QString
QByteArray byte;
QString string;
string = QString(byte);
这里再对这俩中类型的输出总结一下:
qDebug()<<"print";
qDebug()<<tr("print");
qDebug()<<ch;(ch 为char类型)
qDebug()<<tr(ch);
qDebug()<<byteArray;(byteArray是QByteArray类型)
qDebug()<<tr(byteArray);
qDebug()<<str;(str 为Qstring类型)
但是qDebug()<<tr(str);是不可以的,要想用tr()函数输出QString类型的字符则要如下:
qDebug()<<tr(str.toLatin1);
5 、int与 QString 的转换
int 转 QString
int a=10;
QString b;
b=QString::number(a)
QString 转int
QString a="120"
int b;
b=a.toInt()
5、QString与string的转换
QString --> string
QString.toStdString();
string --> QString
QString::fromStdString(string)
6、QString与其他类型的转换
QString --->int,double,char *
QString::toInt()
QString::toDouble()
QString.toStdString().c_str();
7、 int double char* --->string
可以采用<sstream>里的stringstream
以int 为例,int a = 3;
stringstream ss;
string strInt;
ss<<a;
ss>>strInt;
8、QString--->QDateTime
QDateTime转QString
public QDateTime qdate = QDateTime.currentDateTime();
datetime = qdate.toString("yyyy年MM月dd日ddddhh:mm:ss");
//2012年03月-05日Monday13:48:55
QString转换成QDateTime
QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02",
"'M'M'd'd'y'yyhh:mm:ss");
9、QString -->Char*
Qstring 转换char*问题!
方法一:
QString qstr("hello,word");
const char * p = qstr.toLocal8Bit().data();
方法二:
const char *p = qstr.toStdString().data();
//转换过来的是常量
方法三:
QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();
或者
QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1]
strcpy(data, text.data());
delete [] data;
分享到:
相关推荐
详细说明了Qt中所有类型转换,也说明了Qt中类型如何转化成C++语言中的类型
关于QT和MFC类型转换 qstring cstring bstr qdatetime 转换
Qt数据类型的转换
用于初学qt者使用,其中包含了大部分的数据类型转换。
QT中各种类型之间的转换 ,实用性很强,且简单易懂
1、C字符串、字符、字符数组等数据转换 2、MFC字符串、字符、字符数组等数据转换 3、Qt字符串、字符、字符数组等数据转换
QT各种数据类型的相互转换QT各种数据类型的相互转换
QT和Opencv图像格式转换_ qtopencv图片数组相互转化,opencv格式转换mono8 -C 代码类资源 关于QImage和Mat格式的转换
QT字体转换和数据类型转换.doc
qt加载qm文件,并快速实现语言切换。另外实现各数据类型的转换,如qstring转float等。
数据库中clob类型转换的问题 数据库中clob类型转换的问题
2.首先来两个int类型的数据(或double型): 4.将int型(double型)转换为QByteArray型: 5.QString与QByteArray之
智能指针类型转换 在编写基于虚函数的多态代码时,指针的类型转换很有⽤,⽐如把⼀个基类指针转型为⼀个⼦类指针或者反过来。但是对于share_ptr不能使⽤诸如 static_cast*>(p.get())的形式,这将导致转型后的指针⽆...
使用QT实现pcm和wav文件相互转换,读取wav音频格式等。其中有些数据类型属于qt特有如qint32, QString等完全可以转成int,std::string,移植的话转成相应类型即可。
在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印 程序。本题的任务是:从键盘输入一个十亿以内的正整数( int 类型),把它转换 为人民币金额大写(不考虑用户输入错误的情况)。
这几天需要使用QT写个SNTP发布服务。最近用QT,就使用QT的特性,写了包含TCP和UDP的简易框架。已测能用(使用网络抓包工具可解析出NTP数据)。...代码中用到的QString和QDateTime特性很少,而且完全可以用C++类型替换
主要支持两种格式相互转换,QImage 与 HObjec,在多通道下的转换,其中是一个头文件,可以直接导入引用函数。
因为Qt 4框架设计得非常优秀,在2006年的第16届Jolt大奖上,Qt 4获得了类库、框架和组件类别的Jolt生产力奖。 \和Java的“一次编译,到处运行”跨平台不同的是,Qt是源代码级的跨平台,一次编写,随处编译。一次开发...
类型强制转换的区别 static_cast dynamic_cast 的区别