zoukankan      html  css  js  c++  java
  • Qt字符串转换和处理

    公司最近要求用Qt写程序,最郁闷的就是字符串之间的转化。搞的自己七荤八素的!还好本人耐折腾。。。自己也尝试出了几种Qt自带的转换方法。

        #include <QtGui/QApplication>  
        #include "testqstring.h"  
        #include "boost/lexical_cast.hpp"  
        #include <iostream>  
        #include <string>  
        #include <stdio.h>  
        #include <QDebug>  
        using namespace std;  
          
        int main(int argc, char *argv[])  
        {  
            QApplication a(argc, argv);  
            testQString w;  
            w.show();  
          
            QString qStr="testString";  
            qDebug()<<"wyz-------1:"<<qStr;  
          
            string str=qStr.toStdString();  
            cout<<"wyz-------2:"<<str<<endl;  
          
            char *cStr;  
            cStr=(char*)str.c_str();  
            cout<<"wyz-------3:"<<cStr<<endl;  
          
            string str_1="testString2";  
            QString qStr_1;  
            qStr_1.sprintf("%s",str_1.c_str());  
            qDebug()<<"wyz-------4:"<<qStr_1;  
          
          
            return a.exec();  
        }  
    

     运行结果:

    Starting /root/testQString-build-desktop/testQString...
    wyz-------1: "testString" 
    wyz-------2:testString
    wyz-------3:testString
    wyz-------4: "testString2" 

    int 转 QString
    QString & sprintf ( const char * cformat, ... )

    string strData= write1.write(smsJson);
    strData = boost::erase_all_copy(strData, "\n");

    string strTemp=m_qStrInfo.toStdString();

    vector<string>splitVec;
    boost::split(splitVec,strTemp,boost::is_any_of("\r\n"));

     


    ========网上copy来copy去的资料=============

    //常用参数类型:char *字符串, QByteArray字符数组, QString字符串
    //需要转换:char * ---转--- QByteArray ---需要调用QByteArray类的构造函数
    char*     --------------QByteArray(const char*)-----------> QByteArray
    char* str;
    QByteArray byte(str);


    char*     --------------QString(const char*)-------------->QString
    char* str;
    QString string(str);


    QByteArray   -------------data()-------------------->char*
    QByteArray byte;
    char* str = byte.data();


    QByteArray ------------QString()------------------->QString
    QByteArray byte;
    QString string(byte);


    QString --------------toAscii()--------------------> QByteArray
    QString string;
    QByteArray byte = string.toAscii();


    QString -------------qPrintable()------------------>char*
    QString string;
    char* str = qPrintable(string);



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



    QByteArray qba = m_pTcpSocket->readAll();
    QString strings(qba);   //转换成qt字符串



    QByteArray qba = tcpSocket->readAll();
    char *readStr=qba.data();    //把QByteArray转换成char

  • 相关阅读:
    LeetCode-195
    中文屋子与图灵测试谁对?
    leedcode-122
    Java 网络编程
    Java File类与IO流
    Java 异常
    Java 多线程
    Java Collection集合
    Java 常用API (第二部分)
    Java 日期时间与unix时间戳之间转换
  • 原文地址:https://www.cnblogs.com/wiessharling/p/2934633.html
Copyright © 2011-2022 走看看