天天看點

std::string ,QString和const char * 的互相轉換

const char* 轉 string

//第一種方法
const char * s = "hello , world!";
string str(s);

//第二種方法
const char * s = "hello const char";
string s1("hello , string1 ");
string s2 = s1 + string(s);

//第三種方法
const char * s = "hello const char";
string s1("hello , string1 ");
s1 += string(s);
           

string 轉 const char *

string str("hello world !");
const char * s = str.c_str();
           

const char* 轉 QString

const char * s = "hello , world !";
QString qs1(s);
QString qs2 = qs1.append(QString(s));

//需特定編碼
QString qs3= QString(QLatin1String(s));
QString qs4 = QString::fromLocal8Bit(s);
           

QString 轉 const char *

//第一種方法
QString qs1= "Hello , world !";
QByteArray ba = qs1.toLocal8Bit();
const char *s = ba.data();
const char *s2 = ba.constData();

//第二種方法
QString qs1= "Hello , world !";
string str = qs1.toStdString();
const char *s= str.c_str();