zoukankan      html  css  js  c++  java
  • 搞定QString,string,char*,CString的互转

    最近在看QT开发,总结一下关于几种字符串的转换方法。

    方法有很多,这里说一种最通用的方法:char* 是最基础的类型,其他几种类型都可以先转换为char*,然后在进行对于类型的转换。

    CString - char* 

    CString cstr = "this is a cstring.";
    char *ch = cstr.GetBuffer(cstr.GetLength() + 1);
    cstr.ReleaseBuffer();


    TChar* tstr = _T("this is a TChar* string.");

    CString cstr;
    // 直接赋值

    cstr = tstr;
    // 或者使用Format函数

    cstr .Format(_T("%s"), tstr );

    string - char* 

    const char* str1 = "this is a const char*.";
    string str(str1); 


    string str1 ="this is a string.";
    char* str2 = const_cast<char*>(str1.c_str());

    QString - char*

    const char* str = "this is a c string."; 

    QString qstr(QString::fromLocal8Bit(str));
    const char* str2 = qstr.toLocal8Bit();

    QString - string

    #include <QString>  
    #include 
    <vector>  
    #include 
    <iostream>  
    #include 
    <string>
      
    using namespace std;  
    QString s2q(
    const string &s);  
    string q2s(const QString &s); 

    QString s2q(
    const string &s)  
    {  
        
    return QString(QString::fromLocal8Bit(s.c_str()));  
    }  
    string q2s(const QString &s)  
    {  
        
    return string((const char *)s.toLocal8Bit());  
    }  


  • 相关阅读:
    1082 射击比赛 (20 分)
    1091 N-自守数 (15 分)
    1064 朋友数 (20 分)
    1031 查验身份证 (15 分)
    1028 人口普查 (20 分)
    1059 C语言竞赛 (20 分)
    1083 是否存在相等的差 (20 分)
    1077 互评成绩计算 (20 分)
    792. 高精度减法
    791. 高精度加法
  • 原文地址:https://www.cnblogs.com/pyw0818/p/1913600.html
Copyright © 2011-2022 走看看