相互轉換,參考示例如下: 1.從QString轉換為char * 要實現把一個QString轉換為char *,一般遵循這樣的步驟: 第一步,對該QString物件呼叫QString的toLatin1()方法,以獲得該字串的latin1值。 注意toLatin1()的原型如下:QByteArray QString::toLatin1 () const 它將返回一個QByteArray。 示例: QString qstr = "convert" QByteArray ba = qstr.toLatin1(); 第二步,對第一步得到的QByteArray物件呼叫data()方法,以獲得指向儲存於這個陣列中資料的指標。 示例: const char *cstr = ba.data(); 完整的一個控制檯程式如下: int main(int argc, char **argv) { QApplication app(argc, argv); QString qstr = "convert"; QByteArray ba = qstr.toLatin1(); const char *cstr = ba.data(); printf("cstr: %s", cstr); //輸出顯示 return app.exec(); } 當然也有其他方法,基本的差異在於使用toLatin1()還是使用QString的toStdString方法,或者是QString的.toLocal8Bit()方法,後續步驟不變。大家可以自行試驗。 2.把char*轉換為QString。 最為方便的做法是以一個QLatin1String物件作為引數,來呼叫QString的建構函式。 示例: const char *cstr; QString qstr= QString(QLatin1String(cstr));
相互轉換,參考示例如下: 1.從QString轉換為char * 要實現把一個QString轉換為char *,一般遵循這樣的步驟: 第一步,對該QString物件呼叫QString的toLatin1()方法,以獲得該字串的latin1值。 注意toLatin1()的原型如下:QByteArray QString::toLatin1 () const 它將返回一個QByteArray。 示例: QString qstr = "convert" QByteArray ba = qstr.toLatin1(); 第二步,對第一步得到的QByteArray物件呼叫data()方法,以獲得指向儲存於這個陣列中資料的指標。 示例: const char *cstr = ba.data(); 完整的一個控制檯程式如下: int main(int argc, char **argv) { QApplication app(argc, argv); QString qstr = "convert"; QByteArray ba = qstr.toLatin1(); const char *cstr = ba.data(); printf("cstr: %s", cstr); //輸出顯示 return app.exec(); } 當然也有其他方法,基本的差異在於使用toLatin1()還是使用QString的toStdString方法,或者是QString的.toLocal8Bit()方法,後續步驟不變。大家可以自行試驗。 2.把char*轉換為QString。 最為方便的做法是以一個QLatin1String物件作為引數,來呼叫QString的建構函式。 示例: const char *cstr; QString qstr= QString(QLatin1String(cstr));