• Qt QString 、String、char* 三者之间相互转换


    • 把QString 转化为 char*

      思路:

      1.先把QString类型变为QByteArray类型
      2.从QByteArray类型再转为char* 类型

    例子

    1 QString qStr = "两袖清风";
    2 QByteArray qByteArray = qStr.toUtf8();
    3 char* cStr = qByteArray.data();
    4 qDebug()<<cStr<<endl;
    5 //
    6 qDebug()<<qStr.toUtf8().data();

    • 把char* 转化为QString

      思路:

      char *转化为QString比较容易,可以直接使用 QString的构造函数

    例子

    1 char *pCStr ="正大光明";
    2 QString qStr(pCStr);
    3 qDebug()<<qStr.toUtf8().data()<<endl;

    • QString 转C++自带标准string

      思路:

      使用QString类自带的toStdStirng()函数即可

    例子

    1 std::string str;
    2 QString qStr = "两袖清风";
    3 str =qStr.toStdString();
    4 //c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
    5 qDebug()<<str.c_str()<<endl;

    • string 转QString
      思路:

    使用QString自带的静态构造函数 fromStdString(string &s)即可

    例子

    1 std::string str="两袖清风";
    2 QString qStr=QString::fromStdString(str);
    3 qDebug()<<qStr.toUtf8().data()<<endl;

    • string –> char*
      思路:

    直接使用string自带的函数 c_str()即可

    例子

    1 std::string str="两袖清风";
    2 //Tips:c_str()函数是把string 转换为const char*类型
    3 const char* cStr = str.c_str();
    4 qDebug()<<cStr<<endl;

    • char* –> string
      思路:

    直接使用stirng构造函数即可

    例子

    1 char* cStr ="两袖清风";
    2 std::string str(cStr);
    3 qDebug()<<str.c_str()<<endl;
  • 相关阅读:
    WebForms和MVC之间的抉择
    RPM install Error: Failed dependencies
    存储NAS和SAN
    python基础31[visualstudio2010来编写python程序]
    Linux系统性能检测
    perl的引用和>
    Linux内存高级 [swap/buffer]
    python类库26[web2py的URL映射]
    python类库31[python的libpath]
    VShpere中创建新Linux(ubuntu)的virtual machine
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13690311.html
Copyright © 2020-2023  润新知