QString 和char数组转换

在qt开发过程中经常遇到QString类和char数组进行转换,在此记录一下:

QString-》char数组

QString str="12fff";
QByteArray ba=str.toLatin1();
char *c=ba.data();

char数组-》QString

char c[]="12ff";
QString str=QString(QLatin1String(c));
时间: 2024-10-12 18:58:09

QString 和char数组转换的相关文章

QString unsigned char* 的转换

QString -> unsigned char* : QString str = "ABCD";  int length = str.length(); unsigned char* sequence = NULL;sequence =(unsigned char*)qstrdup(str.toAscii().constData()); delete[] sequence; - sequence length = 5 --> ['A'] ['B'] ['C'] ['D']

QVector<QString> 显示动态数组里面的元素用QString和char *的转换

QVector类是一个提供动态数组的模板类. QVector<T>是Qt普通容器类的一种.它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们.QList<T>.QLinkedList<T>和 QVarLengthArray<T>也提供了相似的功能,它们使用方法如下: l QList一般用得最多,它能满足我们绝大部分需求.像prepend()和insert()这样的操作通常比QVector要快些,这是由于QList存储它的对象的方式(Algo

用Qstring给char[]数组赋值(转)

tree_data.Desc  //Desc是char[80]类型的数据 Qstring newDescStr; strcpy(tree_data.Desc , newDescStr.toLocal8Bit().data()); 注意: .toLocal8Bit()为了让Qstring变成QByteArray,也为了汉字本地化处理:.data()是将QByteArray转换为char* 有时候打印SQL语句时,.toLocal8Bit()和.data()不能连续写,要分两步进行: 另外写了一个函

delphi char数组、string和Pchar的相互转换

因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理. 1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi'; p:=PChar(s); ShowMessage(p); p1:=StrAlloc(Len

QString转换为char*

QString在Qt里相当于C++里的std::string,或者是C里的c style string.不过,QString跟编码相关,在低层想把一个QString发送出去相当麻烦,尤其对方用的不是Qt的时候,必须先转化为char数组. QString转换为char数组,基本就是先将QString转换为QByteArray,再从QByteArray取得char *指针,就可以得到char类型的数据了.需要注意的是QString的编码. 假如为UTF8编码,则QString str("中国人&qu

QT:QString、QByteArray和char *的转换 【转载】

原文网址:http://blog.csdn.net/light1028/article/details/7899541 第一种,数据流的方式,这里只说从QByteArray转向QString. QByteArray encodedString = "xxx"; QTextCodec *codec = QTextCodec::codecForName("KOI8-R"); QString string = codec->toUnicode(encodedStri

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar,根据转换链可知 Dest := PAnsiChar(AnsiString(Source)),同理PAnsiChar转PChar为 Dest:= PChar(String(Source)) 如果转换结果最终为string,可以无需String转换,如Array[0..n] of AnsiChar转s

char数组与string转换

1.char数组转string 有很多种方法: 假设c字符串定义为char ch[]="hello world!"; 1.向构造函数传入c字符串创建string对象: string str(ch); 2.使用拷贝构造函数创建string对象: string str = ch; 3.对已有的string对象调用string类内部定义的赋值运算符: string str; str = ch; 前两种类似,但和第三种有较大区别,前两种是运用构造函数直接创建一个内容与c字符串一致的string

QT QString与char *之间的转换 【转载】

原文网址:http://blog.csdn.net/candyliuxj/article/details/6429208 1.QString转char * 先将QString转换为QByteArray,再将QByteArray转换为char *. 注意:不能用下面的转换形式char *mm = str.toLatin1().data();.因为这样的话,str.toLatin1()得到的QByteArray类型结果就不能保存,最后转换,mm的值就为空. 2. char * 转QString 可以