整合网络上的解决方法
解决方法一
1. string转const char*
string s = "abc";
const char* c_s = s.c_str();
const char*转string
直接赋值即可const char* c_s = “abc”;
string s(c_s);string转char*
string s = “abc”;
char* c;
const int len = s.length();
c = new char[len+1];
strcpy(c,s.c_str());char*转string
char* c = “abc”;
string s(c);const char*转char*
const char* cpc = “abc”;
char* pc = new char[100];//足够长
strcpy(pc,cpc);char*转const char*
直接赋值即可char* pc = “abc”;
const char* cpc = pc;
解决方法二
1. const char* 和string 转换
(1) const char*转换为 string,直接赋值即可。
EX: const char* tmp = “tsinghua”.
string s = tmp;
(2) string转换为const char*,利用c_str()
EX: string s = “tsinghua”;
const char*tmp = s.c_str();
2. char*和const char*之间的转换
(1) const char*转化为char*,利用const_cast
Qstring str = "helloworld";
char *s;
QByteArray ba = str.toLatin1();
s = ba.data();
这样就完成了 QString 向 char* 的转化。切记第三行 code 不可以省略。
- 将 char * 转化成 QString
Exp :
QString str;
char *s = "helloworld";
str = QString(QLatin1String(s));