注:QString的tostdstring函数中文会乱码,需要使用tolocal8Bit函数转化
1 std::string转为QString(全英文字符)
std::string s = "hello world"; QString qs = QString::fromStdString(s);
2 std::string转为QString(中文字符)
std::string s = "hello 世界"; QString qs = QString::fromLocal8Bit(s.data());
3 QString转为std::string(全英文字符)
QString qs = "coder"; std::string s = qs.toStdString();
4 QString转为std::string(中文字符)
QString qs = "你好,world"; QByteArray cdata = qs.toLocal8Bit(); std::string s = std::string(cdata);
5 QString转为int
QString qs = "123"; int d = qs.toInt();
6 int转为QString
int d = 18; QString qs = QString::number(d);
7 std::string转为int
std::string s = "28"; int d = atoi(s.c_str());
8 int 转为std::string
// int to string int d = 123; // method 1 char *intStr = itoa(d); std::string s = string(intStr); // method 2 stringstream ss; ss << d; std::string s = ss.str(); // method 3 std::string s = std::to_string(d);
9 std::string 转为char *
std::string str = "string"; const char *cstr = str.c_str();
10 char*转为std::string
char *cStr = "C++"; std::string Str = std::string(cStr);