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());  
    }  


  • 相关阅读:
    基于Lucene/XML的站内全文检索解决方案
    内容管理系统(CMS)的设计和选型
    Lucene入门与使用[转]
    为自己的系统搞个全文搜索 参考值:2 (转)
    C# 时间函数
    Lucene倒排索引原理(转)
    什么是内容管理系统CMS?
    网络测试常用命令
    C#与C的区别
    人生致命的八个经典问题
  • 原文地址:https://www.cnblogs.com/pyw0818/p/1913600.html
Copyright © 2011-2022 走看看