Qt学习(2)——Qt5中的String(1)_在qt5中使用c++ string_beyond_zhangna的博客-程序员秘密

技术标签: Qt  

参考:http://zetcode.com/gui/qt5/strings/

由于我们不需要Qt GUI模块,但是GUI模块为默认加载的,所以我们需要在.pro文件内加上QT -= gui

第一个示例

使用QString类中的基础的类。

// basic.cpp

#include <QTextStream>

int main(void) {

   QTextStream out(stdout);

   QString a = "love"; //将字符串a的内容初始化为love;

   //在下面的字符串操作中,改变的为字符串a本身;
   a.append(" chess"); //在字符串a后面添加 chess;
   a.prepend("I ");    //在字符串a前面添加I ;


   out << a << endl; //输出字符串a;
   //输出字符串a的长度字符数;
   out << "The a string has " << a.count() 
       << " characters" << endl;

   out << a.toUpper() << endl; //将字符串a的字母全部修改为大写字母后输出
   out << a.toLower() << endl; //将字符串a的字母全部修改为小写字母后输出

   out << a << endl; //输出字符串a

   return 0;
}

在这个示例中,我们先初始化了一个QString字符串,然后在字符串前面和后面增加了一些字符串,输出字符串长度,然后输出字符串的大写和小写字母。

   //输出字符串a的长度字符数;
   out << "The a string has " << a.count() 
       << " characters" << endl;

count()范围指定字符串中字符数量,该函数与size()length()的效果是一样的。

   out << a.toUpper() << endl; //将字符串a的字母全部修改为大写字母后输出
   out << a.toLower() << endl; //将字符串a的字母全部修改为小写字母后输出

toUpper()toLower()的作用分别是返回字符串的大写字母和小写字母。

函数的输出结果为:

$ ./basic 
I love chess
The a string has 12 characters
I LOVE CHESS
i love chess
I love chess

字符串初始化

QString具有多种初始化方法。

// init.cpp

#include <QTextStream>

int main(void) {

   QTextStream out(stdout);

   // 传统字符串初始化方法
   QString str1 = "The night train";
   out << str1 << endl;

   // 初始化QString的对象方法
   QString str2("A yellow rose");
   out << str2 << endl;

   // 通过C++标准库初始化
   std::string s1 = "A blue sky";
   QString str3 = s1.c_str(); 
   out << str3 << endl;

   // 将C++标准字符串转换为QString
   std::string s2 = "A thick fog";
   QString str4 = QString::fromLatin1(s2.data(), s2.size());
   out << str4 << endl;

   // C语言字符串
   char s3[] = "A deep forest";
   QString str5(s3);
   out << str5 << endl;

   return 0;
}

其中

   // 通过C++标准库初始化
   std::string s1 = "A blue sky";
   QString str3 = s1.c_str(); 

使用c_str()方法来生成一个以空字符结尾的字符序列。这个字符数组(一个字符串的经典c表示)可以被分配给一个QString变量。

   // 将C++标准字符串转换为QString
   std::string s2 = "A thick fog";
   QString str4 = QString::fromLatin1(s2.data(), s2.size());

我们使用fromlatin1()方法。它需要一个指向字符数组的指针。指针返回std :: stringdata()方法。第二个参数是std :: string的大小。

函数的输出结果为:

$ ./init 
The night train
A yellow rose
A blue sky
A thick fog
A deep forest

获取字符串元素

QStringQChars序列。字符串元素可以用过[]操作符或者at()方法获得。

// access.cpp 

#include <QTextStream>

int main(void) {

   QTextStream out(stdout);

   QString a = "Eagle";

   // 输出字符串第一个和第五个元素
   out << a[0] << endl;
   out << a[4] << endl;

   // 输出字符串第一个元素
   out << a.at(0) << endl;

   // 判断获取字符串元素是否超过字符串范围
   if (a.at(5).isNull()) {
     out << "Outside the range of the string" << endl;  
   }      

   return 0;
}

其中:

   // 输出字符串第一个元素
   out << a.at(0) << endl;

   // 判断获取字符串元素是否超过字符串范围
   if (a.at(5).isNull()) {
     out << "Outside the range of the string" << endl;  
   } 

at()方法返回字符串的元素,如果超出字符串长度,则返回NULL
输出结果为:

$ ./access 
E
e
E
Outside the range of the string
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/beyond_zhangna/article/details/79277378

智能推荐

2021-11-11_八月不过半的博客-程序员秘密

spring今天做spring事务处理的练习时遇见的问题,连接数据库出现问题Thu Nov 11 21:54:49 CST 2021 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established

[百晓生]-鼠标右键新建添加RTF文档_weixin_34309435的博客-程序员秘密

[百晓生]-鼠标右键新建添加RTF文档今天想将空间日志作个本地备份,但是苦于找不到适合的文本工具,因为一般的文本编辑工具都不支持贴图。虽然word就可以满足我们的需求,但文件格式不用doc而是rtf而我以前清理注册表时把所有的无用文件都删除了,所有现在需要重新加入RTF文档。我们既可以享用word提供的强大功能,也能享受到轻量...

js实现鼠标拖拽移动元素位置_js鼠标移动到元素位置_qq_39305143的博客-程序员秘密

在移动的元素触发鼠标按下事件,给document绑定鼠标移动事件(给document绑定事件让元素可以随着鼠标在整个页面上进行移动,如果是给元素直接绑定鼠标移动事件那么元素只能一直是跟着鼠标下移,局限性太大,可以自己试试),鼠移动时让元素跟着鼠标移动,当鼠标抬起时元素停止到该位置。//注意:使用style给元素设置位置等样式时必须在html元素上设置相应的行内样式。eg:box。style.top = 100+"px",则必须要再box1上添加 style = “left :0px;”

vuex中管理数据,刷新后数据丢失问题_鱼柠檬的博客-程序员秘密

在做vue项目的过程中有时候会遇到一个问题,就是进行F5页面刷新的时候,页面的数据会丢失,出现这个问题的原因是因为当用vuex做全局状态管理的时候,store中的数据是保存在运行内存中的,页面刷新时会重新加载vue实例,store中的数据就会被重新赋值,因此数据就丢失了,解决方式如下:解决方法一:最先想到的应该就是利用localStorage/sessionStorage将数据储存在外部,做一个持久化储存,下面是利用localStorage存储的具体方案:方案一:由于state中的数据是响应式的,而数

感受野、下采样相关_下采样和感受野关系_wuxtwu的博客-程序员秘密

关于感受野:“One of the basic concepts in deep CNNs is the receptive field, or field of view, of a unit in a certain layer in the network. Unlike in fully connected networks, where the value of each unit ...

The Vue Instance_monica888888的博客-程序员秘密

参考文章:https://vuejs.org/v2/guide/instance.html一、Constructor构造函数    每一个 Vue应用是由带有一个构造函数Vue建立一个root Vue 实例,建立实例后,就开始启动一个应用。var vm = new Vue({ // options})  尽管没有严格按照 MVVM patt

随便推点

ELK-ElasticSearch权威指南笔记_elk权威文档_陈袁的博客-程序员秘密

ElasticSearch笔记文章目录ElasticSearch笔记前言测试工具语法索引,文档和类型文档元数据检索索引里文档数据查看当前节点的所有 Index查看所有index的mapping(映射)查看特定index的mapping搜索全部文档查询指定id文档检索文档的一部分查询字符串搜索下面搜索city是city:Yardville的文档多条件搜索,条件之间用+连接。必选项多条件搜索_all...

STM32MP157系列教程连载-Cortex-M4开发篇4:STM32MP1微控制器之外部中断_m4 外部中断到中断函数_左月先生的博客-程序员秘密

STM32MP157系列教程连载-Cortex-M4开发篇4:STM32MP1微控制器之外部中断第 1 章 Cortex-M4 外部中断实验目的熟悉STM32CubeIDE工具软件的使用。掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口作为外部中断输入。实验环境FS-MP1A开发平台ST-Link仿真器STM32CubeIDE开发软件PC机 XP、Window7/10

Xshell 6.0.189.0 中文版使用教程_xshell6使用教程_恋网之鱼的博客-程序员秘密

Xshell6软件功能1、独家绿化,集成内部密钥启动为永久授权版。2、Xshell6去启动效验,并移除版权保护服务安装程序。3、Xshell6全简体中文模块翻译,完整显示简体中文。4、已默认设置选择个人数据保存到当前目录下。5、删多国语言模块、密钥管理、在线升级程序。6、Xshell6去除菜单多余项:检查更新、英文帮助等等。Xshell6软件特色1、支持IPv6无论你是同时使用IPv4和IPv6网络或者完全的IPv6网络,Xshell6都...

Xshell登录Vagrant方式_axfcjwkbi259888707的博客-程序员秘密

Xshell登录Vagrant方式我上一篇文章 介绍了vagrant 如何创建虚拟机集群,在上篇文章的基础上,用xshell 登录 虚拟机发现 默认是无法使用账号密码登录root账号,只能使用vagrant账号,密码vagrant,vagrant账号登录在虚拟机 vagrantfile 的目录位置 打开控制台,输入vagrant ssh-config$ vagrant ssh-c...

linux服务器的一些配置(密码过期策略、登录次数限制、私钥登录等)_linux服务器设置二次登录密码_canfly666的博客-程序员秘密

linux服务器的一些配置 介绍关于linux服务器的一些配置。文章目录linux服务器的一些配置一、linux服务器设置密码过期策略二、linux服务器设置密码登录次数限制三、linux服务器设置公钥登录linux服务器修改默认账户用户名总结一、linux服务器设置密码过期策略修改 /etc/login.defs 配置文件,在用xshell登录到服务器后,在命令行界面输入 vim /etc/login.defs 进入服务器配置文件的修改界面,此时xshell界面如下:其中该配置文件中需要修

使用Xshell连接VMware搭载的Linux操作系统的虚拟机_打开vmware,启动虚拟机,在xshell工具中用 root 用户登录linux操作系统。_7旅病娘的博客-程序员秘密

使用Xshell连接VMware搭载的Linux操作系统的虚拟机Windows10操作系统,下载、安装Xshell下载安装使用Xshell连接VMware搭载的Linux操作系统的虚拟机使用Xshell连接VMware搭载的Linux操作系统的虚拟机前言Hello,各位码友大家好。再此之前,我们已经在VMware中搭载了RedHat7.1版本的Linux操作系统,你可能会发现,这样虽然虚拟机搭建起来了,但是如果要同时使用物理机的话,操作起来就有点麻烦了。为了方便在物理机和虚拟机之间的切换操作,今天我们

推荐文章

热门文章

相关标签