• 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;
  • 相关阅读:
    Tomcat 7 的七大新特性 悟寰轩
    MapReduce提交作业常见问题 悟寰轩
    [MQ]关于ActiveMQ的配置 悟寰轩
    LinkedBlockingQueue应用实例 悟寰轩
    什么是java序列化,如何实现java序列化? 悟寰轩
    远程注入DLL的例子
    回调函数实例
    将网页保存为Stream
    删除文件或文件夹
    选择目录
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13690311.html
Copyright © 2020-2023  润新知