Qt QString类

数值输入

C++ 提供了两种字符串的实现方式:一种是C风格的字符串,以"0"结尾;另一种是 C++引入的 String 类型,即标准模板库中的类。Qt则提供了自己的字符串实现方式------QString。

Qt中的QString字符串类:

  • 无须担心内存分配
  • 无须关心"\0"结尾的注意事项
  • 与C语言风格不同,在QString中间可以包含"\0"
  • length()函数返回的是整个字符串的长度,而不是开头到"\0"的距离

QString类

在Qt中的QString类中系统配备了许多函数给用户使用:

cpp 复制代码
QString str

--是否为空
str.isEmpty() //返回的是布尔类型
str.isNull()  //真为(true) 假为(false)

--将str2字符串添加到str字符串
str.append(str2)

--返回字符串的长度,若空则为0
uint i = str.length()

--返回在索引"i"处的字符,如果超过长度则返回0
QChar c = str.at(i)

--转换为大小写
str.toUpper()
str.toLower()

--字符串比较compare
QString::compare("ab", "ab") //0
QString::compare("ab", "df") //<0
QString::compare("df", "ab") //>0

换成数值

在我们知道QString类的一些常见用法之后,我们就需要知道怎么处理QString对象 ,我们可以直接定义,然后在对其操作,我们怎么把一个QString对象转换成数值呢:

cpp 复制代码
#include <QApplication>
#include <iostream>
using namespace std

int main(int argc, char *argv[])
{
    QString str = "123.45";
    double val = str.toFloat();
    cout<< val<<endl; //123.45
    bool ok;
    double d = QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456
    std::cout << d << '' << ok << endl
}

如果我们不想使用c++中的输出流进行输出,也可以使用Qt中的QDebug类来进行输出:

cpp 复制代码
#include <QDebug>

qDebug() << str
相关推荐
hold?fish:palm12 小时前
45 二叉树的右视图
开发语言·c++·算法
MI_farmer12 小时前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
“AI国潮设计-小江”12 小时前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc
布莱克60512 小时前
在C++中,构造函数能不能是虚函数?析构函数为什么要虚?
开发语言·c++·构造函数·析构函数·虚函数
落魄实习生13 小时前
Agent Scope Java 2.x 系列【1】核心架构
java·开发语言·架构
一水鉴天13 小时前
三套语言:STL SPL/ SQL 20260928(元宝)
开发语言
Sarvartha13 小时前
数组基础知识
java·开发语言
泡海椒13 小时前
金融报表开发:jquick-pdf K 线图 PDF 可视化解决方案
java·开发语言·金融·pdf
孙启超13 小时前
【AI开发之Rust】第 17 课:项目总览与核心架构 —— AI 助手 Rust 核心从 0 到 1
开发语言·后端·rust
码匠许师傅14 小时前
【C++三方组件】Asio 上篇:回调式 TCP 客户端与服务端
开发语言·c++·tcp/ip