QString和string类型相互转换

转载)http://blog.csdn.net/yang_hui1986527/article/details/5273805

在使用QT和C++进行开发的时候,由于两者的数据类型不完全相同,需要进行转换。下面介绍QString和string类型相互转换的方法。(QT4.6上已测试可用。)

1、在头文件中添加inlucde信息和转换函数声明:

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

2、在主体CPP文件中添加以下转换函数即可:

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

 

 


#include <QtGui>

#include "mainwindow.h"

#include <iostream>



using namespace std;



int main(int argc, char *argv[])

{

    QApplication a(argc, argv);



    QString name("Qt test!");

    string info = name.toAscii().data();  // 将QString转化成了string类型     qDebug() << info.c_str();



    info = "IT is good!";

    name = info.c_str();  // 将string类型转化成了QString类型     qDebug() << name;



    MainWindow w;

    w.show();



    return a.exec();

}

 

你可能感兴趣的:(String类)