std::string、QString和const char*常常需要互相转换,可以比作刚需哈哈哈哈。这里就做一个互相转换的记录,方便自己也方便大家。
1、std::string转QString
QString有一个静态函数QString::fromStdString(),专门用于接收std::string。
2、std::string转const char*
std::string有一个c_str()函数返回值便是const char*
string str("hello world !");
const char * s = str.c_str();
3、QString转std::string
同样QString有一个toStdString()的函数
QString qs1= "Hello , world !";
string str = qs1.toStdString();
4、QString转const char*
QString转到const char*就需要一个QByteArray作为中间转换了。
QString qs1= "Hello , world !";
QByteArray ba = qs1.toLocal8Bit();
const char *s = ba.data();
5、const char*转std::string
可以直接写到构造函数当中
const char * s = "hello , world!";
string str(s);
6、const char*转QString
同样也是直接写到构造函数当中
const char * s = "hello , world!";
QString str(s);