当前位置: 首页 > news >正文

Qt 字符串类应用与常用基本数据类型

目录

操作字符串

查询字符串

Qt 常见数据类型


操作字符串

创建一个控制台项目

(1)QString提供一个二元的 “+” 操作符,主要用于组合两个字符串。QString str1 = "Hello World' 传递给QString一个 const char* 类型的ASCII字符串 “Hello World” ,它被解释为一个典型的以 "\0" 结尾的C类型字符串

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 1.QString提供二元 “+” 操作符应用,功能一样 “+=”QString str1 = "Hello";str1 = str1 + "World";qDebug()<<str1;  // 打印信息qDebug()<<qPrintable(str1);  // 去掉双引号QString str2 = "12345";str2+="ABCDE";qDebug()<<qPrintable(str2);return a.exec();
}

Qt中创建一个QCoreApplication对象的实例。

具体解释如下:

  • QCoreApplication是Qt框架中的一个核心类,用于处理应用程序的事件循环和基本功能。
  • a是一个QCoreApplication对象的实例,通过调用构造函数QCoreApplication(int &argc, char **argv)创建。
  • argc是命令行参数的数量,通常是程序启动时通过命令行传递的参数的数量。
  • argv是命令行参数的值,是一个指向字符串数组的指针,每个元素表示一个命令行参数的字符串。

通过调用exec()函数,Qt应用程序进入事件循环,开始处理用户输入、定时器事件、网络通信等各种事件,并按照信号和槽的连接关系执行相应的槽函数。

最后,通过return语句将exec()函数的返回值返回,可以在需要时获取事件循环的退出状态。

(2)QString::append() 函数具备与 “+=" 操作符同样的功能,直接在一个字符串末尾添加另一个字符串。

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 2.QString::append()函数QString str1 = "Good";QString str2 = "bye";str1.append(str2);  // str1 = "Good bye"qDebug()<<qPrintable(str1);return a.exec();
}

(3)组合字符串:QString::sprintf(),其实它跟 C++ 库当中 sprintf() 函数一样

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 3.QString::sprintf()函数QString strtemp;strtemp.sprintf("%s %s","Hello World!","Goodbye");qDebug()<<qPrintable(strtemp);return a.exec();
}

(4)字符串组合方式 QString::arg() 函数,该函数的重载可以处理多种数据类型。因为它类型齐全,同时支持 Unicode,可以改变 %n 参数顺序。

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString strTemp;strTemp=QString("%1 was born in %2").arg("Sunny").arg(2000);qDebug()<<strTemp;return a.exec();
}

查询字符串

(1)函数 QString::startsWith() 判断一个字符串是否以某个字符串开头。Qt::CaseInsensitive 代表大小写不敏感;Qt::CaseSensitive 表示大小写敏感。对应关系函数 QString::endsWith().

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString strTemp="How are you";qDebug()<<strTemp.startsWith("How",Qt::CaseSensitive); // trueqDebug()<<strTemp.startsWith("are",Qt::CaseInsensitive); // falsereturn a.exec();
}

(2)函数QString::contains() 判断一个指定的字符串是否出现过

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString strTemp="How are you";qDebug()<<strTemp.contains("How",Qt::CaseSensitive); // truereturn a.exec();
}

(3)QString::toInt() 函数将字符串转换为整型数值,toDouble()/toFloat()/toLong()等等

#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString str="25";bool isloop;  // 判断是否成功int hex=str.toInt(&isloop,16);qDebug()<<"isloop="<<isloop<<","<<"hex="<<hex<<endl;return a.exec();
}

(4)QString::compare() 函数对两个字符串进行比较

#include <QCoreApplication>#include <QDebug>
#include <iostream>using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int a1=QString::compare("abcd","ABCD",Qt::CaseInsensitive);int b1=QString::compare("about","Cat",Qt::CaseSensitive);int c1=QString::compare("abcd","Cat",Qt::CaseInsensitive);cout<<"a1="<<a1<<"b1="<<b1<<"c1="<<c1<<endl;return a.exec();
}

(5)Qt将QString转换成ASCII

#include <QCoreApplication>#include <QDebug>
#include <iostream>using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString str="ABC abc";QByteArray bytes=str.toUtf8();for(int i=0;i<str.size();i++)qDebug()<<int(bytes.at(i));return a.exec();
}

Qt 常见数据类型

注意:定义在 #include <QtGlobal>

#include <QCoreApplication>#include <QDebug>
#include <iostream>
#include <QDateTime>using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QDateTime dt;QString strDT=dt.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");qDebug()<<strDT<<endl;QByteArray a1("Qt Creator Hello World.");QByteArray b1=a1.toLower();  // 将字符串大写字母转小写,小写不变qDebug()<<b1<<endl;QByteArray c1=a1.toUpper();qDebug()<<c1<<endl;return a.exec();
}

相关文章:

Qt 字符串类应用与常用基本数据类型

目录 操作字符串 查询字符串 Qt 常见数据类型 操作字符串 创建一个控制台项目 &#xff08;1&#xff09;QString提供一个二元的 “” 操作符&#xff0c;主要用于组合两个字符串。QString str1 "Hello World 传递给QString一个 const char* 类型的ASCII字符串 “He…...

JAVA面试题15

当然&#xff0c;我可以提供给您一些常见的Java面试题及其答案。以下是一些示例&#xff1a; 什么是Java的四种基本数据类型&#xff1f; 答案&#xff1a;Java的四种基本数据类型是整型&#xff08;byte、short、int、long&#xff09;、浮点型&#xff08;float、double&…...

git安装及使用

1、下载git 官网 Windows系统Git安装教程&#xff08;详解Git安装过程&#xff09; 官网打不开的话&#xff0c;可以使用镜像地址 镜像地址 2、使用git Git的下载、安装与使用(Windows) 30分钟带你精通git使用 3、注册github https://github.com/ 4、github文档 h…...

电力负荷预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型(结合时间序列)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型(结合时间序列) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断…...

力扣:455. 分发饼干

贪心解法思路&#xff1a; 1.先把两个数组按顺序遍历好&#xff0c;之后用最大的饼干来喂最大的胃口&#xff0c;如果最大的饼干不能喂饱最大的胃口&#xff0c;就除去这个最大的胃口&#xff0c;在剩下的为胃口中找最大的胃口来进行比对。这题主要历用了通过局部的优解&#…...

SpringCloud-项目引入Nacos

一、安装Nacos服务 首先&#xff0c;我们需要从 Nacos 的官方网站下载发布版本。下载地址&#xff1a;Releases alibaba/nacos GitHub 选择合适的版本并下载&#xff0c;解压缩得到 Nacos 的安装包。 在解压后的 Nacos 目录中&#xff0c;找到 bin 文件夹。 用写字板编辑…...

如何在 Windows 10/11 上恢复回收站永久删除的文件夹?

经验丰富的 Windows 用户将使用 Windows 备份和还原或文件历史记录来恢复不在回收站中的已删除文件夹。这些工具确实有助于 Windows 文件夹恢复&#xff0c;但并不总是有效。现在有许多专用的 Windows 数据恢复软件和免费解决方案可以替代它们&#xff0c;为 Windows 用户提供了…...

七、滚动条操作——调整图像对比度

对比度调整&#xff1a;是在原来图像基础上进行相应的公式调整&#xff0c;是类似乘法操作&#xff0c;本身像数值越大&#xff0c;对比度增加之后其与低像素点值差距越大&#xff0c;导致对比增强 项目最终效果&#xff1a;通过滚动条trackbar来实现调整图片亮度的功能 我这里…...

免费生成ios证书的方法(无需mac电脑)

使用hbuilderx的uniapp框架开发移动端程序很方便&#xff0c;可以很方便地开发出移动端的小程序和app。但是打包ios版本的app的时候却很麻烦&#xff0c;官方提供的教程需要使用mac电脑来生成证书&#xff0c;但是mac电脑却不便宜&#xff0c;一般的型号都差不多上万。 因此&a…...

gtkmm4 应用程序使用 CSS 样式

文章目录 前言css选择器css文件示例源代码效果动态设置css-classes 前言 程序样式和代码逻辑分离开 使代码逻辑更可观 css选择器 Cambalache提供了两种css-classes 相当于css里的类名:class“类名”css-name 相当于css里的标签名:spin div p 啥的 如上我设置了这个按钮控件的…...

科研绘图-半小提琴图-

文章目录 前言1.软件安装-Origin 20222.绘制半小提琴图3.绘制径向条形图 前言 本文叙述记录的是一些科研绘图的实现方法&#xff0c;具体介绍从软件安装到实现图表绘制的详细过程。 1.软件安装-Origin 2022 Origin是一款具有丰富绘图功能的科研绘图软件&#xff0c;安装过程…...

机器学习 | 深入集成学习的精髓及实战技巧挑战

目录 xgboost算法简介 泰坦尼克号乘客生存预测(实操) lightGBM算法简介 《绝地求生》玩家排名预测(实操) xgboost算法简介 XGBoost全名叫极端梯度提升树&#xff0c;XGBoost是集成学习方法的王牌&#xff0c;在Kaggle数据挖掘比赛中&#xff0c;大部分获胜者用了XGBoost。…...

SNMP(简单网络管理协议)介绍

简介 作为系统管理员的重要工作之一是收集关于服务器和基础设施的准确信息。有许多工具和选项可用于收集和处理这种类型的信息。其中许多工具都是建立在一种称为SNMP的技术之上。 SNMP代表简单网络管理协议。这是服务器可以共享有关其当前状态的信息的一种方式&#xff0c;也…...

Spring中常见的设计模式

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性、更具有灵活、优雅&#xff0c;而Spring中共有九种常见的设计模式 工厂模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于…...

【MySQL】——数值函数的学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Z1fAnfrxGD7I5gqp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

LLMs模型选择,LLMs复读机问题,LLMs长文本处理方案

为什么会出现 LLMs 复读机问题&#xff1f; LLMs 复读机问题&#xff08;LLMs Parroting Problem&#xff09;是指大型语言模型&#xff08;LLMs&#xff09;在生成文本时可能出现的重复或重复先前输入内容的现象。出现LLMs复读机问题可能有以下几个原因&#xff1a; 数据偏差…...

LeetCode.144. 二叉树的前序遍历

题目 144. 二叉树的前序遍历 分析 这道题目是比较基础的题目&#xff0c;我们首先要知道二叉树的前序遍历是什么&#xff1f; 就是【根 左 右】 的顺序&#xff0c;然后利用递归的思想&#xff0c;就可以得到这道题的答案&#xff0c;任何的递归都可以采用 栈 的结构来实现…...

Redis复制

文章目录 1.Redis复制是什么2.Redis能干嘛3.权限细节4.基本操作命令5.常用三招5.1 一主二仆5.2 薪火相传5.3 反客为主 6.复制原理和工作流程7.复制的缺点 1.Redis复制是什么 就是主从复制&#xff0c;master以写为主&#xff0c;Slave以读为主。当master数据变化的时候&#x…...

C++入门学习(二十七)跳转语句—break语句

1、与switch语句联合使用 C入门学习&#xff08;二十三&#xff09;选择结构-switch语句-CSDN博客 #include <iostream> #include <string> using namespace std;int main() { int number;cout<<"请为《斗萝大路》打星(1~5※)&#xff1a;" &…...

Spark安装(Yarn模式)

一、解压 链接&#xff1a;https://pan.baidu.com/s/1O8u1SEuLOQv2Yietea_Uxg 提取码&#xff1a;mb4h tar -zxvf /opt/software/spark-3.0.3-bin-hadoop3.2.tgz -C /opt/module/spark-yarn mv spark-3.0.3-bin-hadoop3.2/ spark-yarn 二、配置环境变量 vim /etc/profile…...

CCPD车牌数据集预处理避坑指南:透视变换原理详解与OpenCV实战

CCPD车牌数据集预处理避坑指南&#xff1a;透视变换原理详解与OpenCV实战 车牌识别系统中&#xff0c;数据预处理的质量直接影响模型性能。CCPD作为目前最全面的中文车牌数据集&#xff0c;其四点标注特性为透视变换提供了基础&#xff0c;但也暗藏诸多陷阱。本文将手把手带您穿…...

LVGUI字体瘦身实战:如何为你的IoT设备定制一个超小的中文字体库

LGVUI字体瘦身实战&#xff1a;为IoT设备定制超小中文字体库的工程化解决方案 在嵌入式物联网设备开发中&#xff0c;每一KB的Flash和RAM都弥足珍贵。当你的智能温控器需要显示"当前温度&#xff1a;25℃"或者电子秤要呈现"净重&#xff1a;0.5kg"时&#…...

基于AI智能体的渗透测试框架:从自动化到智能协同的范式转变

1. 项目概述&#xff1a;一个面向渗透测试的智能体框架最近在整理自己的工具链时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫GH05TCREW/pentestagent。乍一看这个名字&#xff0c;你可能会觉得这又是一个“缝合怪”式的自动化渗透工具&#xff0c;把Nmap、SQLmap之类的…...

高性能键盘映射与SOCD清理架构解析:解决游戏输入冲突的技术方案

高性能键盘映射与SOCD清理架构解析&#xff1a;解决游戏输入冲突的技术方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏和高速动作游戏中&#xff0c;键盘输入的处理方式直接影响玩家的操作精度和…...

Forge模组开发效率提升:Gradle插件自动化构建与热部署实践

1. 项目概述&#xff1a;一个为Forge模组开发者准备的“瑞士军刀”如果你是一名Minecraft Forge模组的开发者&#xff0c;或者你正打算踏入这个充满创造力的领域&#xff0c;那么你大概率经历过这样的场景&#xff1a;为了测试一个简单的功能改动&#xff0c;你需要反复地执行g…...

AI Agent产品经理的新思维:从功能设计到AI原生产品的方法论转型

AI Agent产品经理的新思维&#xff1a;从功能设计到AI原生产品的方法论转型 各位产品同行、AI从业者&#xff0c;大家好&#xff01;我是连续3年深耕AI工具Agent产品、从C端信息流&#xff08;今日头条/抖音生态&#xff09;PM成功转型AI原生垂直工具PM的张小白——过去两年&am…...

用C++和RealSense D435i搞个3D手势识别?从像素坐标到相机坐标的保姆级避坑指南

3D手势识别实战&#xff1a;用RealSense D435i实现像素到相机坐标的高精度转换 当你的手指在空气中划出一道弧线&#xff0c;计算机能否精准捕捉这个三维动作&#xff1f;这正是3D手势识别技术试图解决的问题。作为人机交互领域的前沿方向&#xff0c;3D手势识别正在VR游戏、医…...

大语言模型与多模态生成融合:架构、工具与实践指南

1. 项目概述&#xff1a;当大语言模型遇见多模态生成最近两年&#xff0c;AI领域最激动人心的进展&#xff0c;莫过于大语言模型&#xff08;LLMs&#xff09;和多模态生成模型的“双向奔赴”。前者以ChatGPT、GPT-4为代表&#xff0c;展现了惊人的语言理解、推理和生成能力&am…...

移动端Shell集成AI助手:ShellGPTMobile部署与实战指南

1. 项目概述&#xff1a;当ShellGPT遇见移动端如果你是一个重度命令行用户&#xff0c;同时又对AI助手&#xff08;比如ChatGPT&#xff09;的便利性爱不释手&#xff0c;那么你很可能面临一个尴尬的境地&#xff1a;在终端里敲命令时&#xff0c;突然需要AI帮忙解释一段日志、…...

MacOS光标增强工具:命令行驱动,实现自动化与个性化配置

1. 项目概述&#xff1a;当光标成为生产力工具如果你是一名长期在macOS上工作的开发者、设计师或者文字工作者&#xff0c;你肯定对系统自带的光标功能又爱又恨。爱的是它简洁流畅&#xff0c;恨的是它在某些高强度、多任务场景下显得力不从心。比如&#xff0c;当你需要在多个…...