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));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值