您的位置:首页 > 编程语言 > Qt开发

QT5 字符串操作 (代码详解:字符串分割、条件判断、输出、C++ string类向 QT QString类的转换)

2018-02-06 14:42 896 查看

博主新建的QT5工程如右图所示:

用到的C++ string类里的函数: find() substr() --- 可在C++ Library Reference里在线查找

用到的QT5 QDebug里的函数:qDebug()

代码:

#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <string>
#include <QString>
using namespace  std;

QTextStream cin(stdin,QIODevice::ReadOnly);
QTextStream cout(stdout,QIODevice::WriteOnly);
QTextStream cerr(stderr,QIODevice::WriteOnly);

myWidget::myWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::myWidget)
{
ui->setupUi(this);

/*
两个注意点:
(1)qDebug()用法:包含头文件 #include <QDebug> 一千万个要警惕的是:不要错用大写的QDebug() 以及 一要在QDebug后面加()
原因:qDebug()是一个函数,而不是像C++的cout那样是一个智能对象,你不加()的直接用的话会报流运算符<<未重载的错误。
(2)string 要转换成QString才能被 qDebug()输出!!!
std::string -> QString : string cmd = "123"; QString cmd_2 = QString::fromStdString(cmd);
QString -> std::string  : QString qstr = "456"; string str = qstr.toStdString();

*/
string str = "1"; str += "@10000";
string u = "@";

int num = 0;
num = str.find(u,0);
string cmd = str.substr(0, num);//从位置0开始到@的子字符串//string类
QString cmd_2 = QString::fromStdString(cmd);//string -> QString
qDebug()<<"命令:(从位置0开始到@的子字符串)"<<cmd_2;

string other = str.substr(num + 1);//字符串@之后的子字符串//string类
QString other_2 = QString::fromStdString(other);
qDebug()<<"其他:(字符串@之后的子字符串)"<<other_2;

QString test = "Here!";
if(cmd == "1")
qDebug()<<test;

}

myWidget::~myWidget()
{
delete ui;
}
4000
/*
两个注意点:
(1)qDebug()用法:包含头文件 #include <QDebug> 一千万个要警惕的是:不要错用大写的QDebug() 以及 一要在QDebug后面加()
原因:qDebug()是一个函数,而不是像C++的cout那样是一个智能对象,你不加()的直接用的话会报流运算符<<未重载的错误。
(2)string 要转换成QString才能被 qDebug()输出!!!
  std::string -> QString : string cmd = "123"; QString cmd_2 = QString::fromStdString(cmd);
QString -> std::string  : QString qstr = "456"; string str = qstr.toStdString();

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐