使用Qt做应用开发时如果需要跟其他三方库,总会遇到Qt中的字符串转其他类型的字符串,比如QString转string等,不管怎么样转换,它们总会跟char*类型的字符串有联系,只要能将QString和char*进行相互转换就能转换成其他类型的字符串。
QString转char*的简短的代码如下:
char* ch;
QString qString = "MY Name is XXX";
QByteArray ba = qString.toLatin1();
ch=ba.data();
值得注意的是在使用完char* ch后不能使用delete ch将ch指向的内存删除,因为它指向的是QByteArray的数据块,如果delete ch会将QByteArray的数据块删除,在QByteArray的作用域结束时,会调用QByteArray的析构函数,又会再一次删除这个内存块,之前已经删除了,不能再次删除,所以会出错。
char*转QString就很简单了,一行代码就能搞定:char* ch = "My Name is XXX";
QString qstring = QString(ch);