qt const char * 和QString互转

 const char * ======> QString

const char * c = "hello , world !";
QString str1(c);
QString str2 = QString(c);
QString str3 = QString(QLatin1String(c));
QString str4 = QString::fromLocal8Bit(c);

 

QString=====> const char *

//方法1
QString str1= "Hello , world !";
QByteArray ba = str1.toLocal8Bit();
const char *c1 = ba.data();
const char *c2 = ba.constData();
const char *c3 = str1.toLocal8Bit().constData()

//方法2
QString str1= "Hello , world !";
const char *c= str1.toStdString().c_str();


//方法3,使用strcpy或者memcpy,这里只用memcpy写示例
char test[64] ={0};
QString str1= "Hello , world !";;
memcpy(test, str1.toLatin1().data(), strlen(str1.toLatin1().data()));
//如果是中文应该尝试用以下方法:
memcpy(test, str1.toLocal8Bit().data(), strlen(str1.toLocal8Bit().data()));  //gb2312
memcpy(test, str1.toUtf8().data(), strlen(str1.toUtf8().data()));   //utf-8

 

你可能感兴趣的:(Qt)