• QString, string, int, char* 之间相互转换


    这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法:

    - Qstring & string

    Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序员抱怨Qt非要整个自己的QTD,为啥不直接支持STD,但是我想说某些时候QTD完全可以替代STD,就算不想完全替代,Qt也提供了完整而强大的相互转换的函数,下面我们先来看Qstring和string的相互转换。

    // string to QString
    std::string s = "hello world";
    QString qs = QString::fromStdString(s);
    
    // QString to string
    QString qs = "coder";
    std::string s = qs.toStdString();

    - QString & int

    // QString to int
    QString qs = "123";
    int d = qs.toInt();
    
    // int to QString
    int d = 18;
    QString qs = QString::number(d);

    - string & int

    // string to int
    std::string s = "28";
    int d = atoi(s.c_str());
    
    // int to string
    int d = 123;
    // method 1
    char *intStr = itoa(d);
    std::string s = string(intStr);
    // method 2
    stringstream ss;
    ss << d;
    std::string s = ss.str();
    // method 3
    std::string s = std::to_string(d);

    - char* & string

    参见我之前的博客string to char* and char* to string 玩转 String 和 Char*

    - char* & QString

    可先由上面的方法将char*先转为string,再和QString相互转换。

    - char* & int

    可先将char*转为string,或是先将int转为string,于是就变成了它们和string之间的转换。

  • 相关阅读:
    hibernate 映射<二>一对一主键关联
    C# Convert Type to T
    008 OS模块
    001基础知识补充与拓展
    005Buffer(缓冲区)
    009path模块
    002nodejs简介与安装
    007http模块
    004NPM包管理器
    003nodejs的模块化
  • 原文地址:https://www.cnblogs.com/grandyang/p/4312273.html
Copyright © 2020-2023  润新知