关于string QString 和char *

写这篇文章是因为最近在写opengl和opencv程序,由于opencv是c语音移植,opengl也是c语言先实现的,有很多函数的参数是char */const char * ,但是总所周知,char * 很难和其他类型的数据拼接,反而使用string 和qt中的钱string
可以使用+轻松拼接
例:

int i = 2;
"abc" + QString::number(i) + "def";

这样的结果是QString类型的 “abc2def”
这就很舒服
但是要把QString类型要放进const char *为参数类型的函数里,这就遇到了类型转换
其中

QString 转char * 或const char *是同样的方法

.toLatin1().data();
例:

QString("material." + name + number).toLatin1().data()

这是样就可以赋给一个char *变量或直接放在函数参数位置了。

char * 转 QString

这个并不复杂
例:

char *c = "hellow";

QString str=QString(QLatin1String(c));

string 转 char *

也很简单

例:

string a =“fdfd”;
1.const char *c = a.c_str();
2.char *c= a.data();

char * 转 string

这个string做了重载赋值运算符
直接使用=即可
例:

char *p = "fdaf";
string s  = p;

还可以使用stream,假如i是一个int类型数据

stringstream ss;
string index;
        ss << i;
        index = ss.str();
("offsets[" + index + "]").c_str()就是char *类型的
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值