QString,const char*,char*相互直接转换方法

整合网络上的解决方法
解决方法一
1. string转const char*

   string s = "abc";
   const char* c_s = s.c_str();
  1. const char*转string
    直接赋值即可

    const char* c_s = “abc”;
    string s(c_s);

  2. string转char*

    string s = “abc”;
    char* c;
    const int len = s.length();
    c = new char[len+1];
    strcpy(c,s.c_str());

  3. char*转string

    char* c = “abc”;
    string s(c);

  4. const char*转char*

    const char* cpc = “abc”;
    char* pc = new char[100];//足够长
    strcpy(pc,cpc);

  5. 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 不可以省略。

  1. 将 char * 转化成 QString

Exp :

QString str;
char *s  = "helloworld";
str = QString(QLatin1String(s));

你可能感兴趣的:(#,Qt,string,QString,const-char,char)