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

GESP编程等级认证C++三级8-字符串1

字符串是C++的数据类型,用string表示。

1 字符串变量的定义

可以通过如图1所示的代码定义字符串变量。

图1 定义字符串变量的代码

图1中使用了两种方法定义字符串变量,s1和s2的值均为“hello”。

2 字符串中单个字符的使用

2.1 通过下标访问字符串中的单个字符

可以通过下标访问字符串中的单个字符,代码如图2所示。

图2 通过下标访问字符串中的单个字符的代码

其中,第9行代码表示打印字符串s1中下标为2的字符,也就是s1的第3个字符,程序运行后会显示“l”。

2.2 字符串下标“越界”情况

在《GESP编程等级认证C++三级3-数组3》中提到,数组的下标范围是0-(数组长度-1),下标取值在这个范围之外,都会产生“越界”问题。在《GESP编程等级认证C++三级6-字符、字符数组与字符串1》中提到,字符串的末尾隐式地包含了结尾字符“\0”,也就是0x00,因此,字符串s1显式地包含了5个字符,隐式地包含了第6个结束字符,通过下标访问s1的第6个元素时,不算越界,代码如图3所示。

图3 通过下标访问字符串隐藏字符的代码

因为无法打印“\0”这个字符,程序运行后,没有输出。当通过下标访问s1的第7个元素时,此时会产生“越界”报错,代码如图4所示。

图4 通过下标“越界”访问字符串的代码

运行程序后,会弹出终止程序的对话框,如图5所示。

图5 终止程序对话框

3 字符串中字符个数的获取

通过字符串类的length()函数或者size()函数,能够获取该字符串中字符的个数,不包含最后一位隐藏的结束字符,代码如图6所示。

图6 获取字符串中字符个数的代码

此时,两行输出代码输出的值都是5。

4 字符串中所有字符的遍历

通过for循环可以遍历字符串中所有的字符,代码如图7所示。

图7 遍历字符串中所有字符的代码

其中,第9行中的s1.length()-1是字符串下标i的最大值,也就是说i的取值范围是0-s1.length()-1。

http://www.xdnf.cn/news/8503.html

相关文章:

  • 【Day34】
  • 一文详解 HLS
  • siparmyknife:SIP协议渗透测试的瑞士军刀!全参数详细教程!Kali Linux教程!
  • Python 训练营打卡 Day 33
  • AI浪潮下,媒体内容运营的五重变奏
  • 安卓新建项目时,Gradle下载慢下载如何用国内的镜像
  • 什么是Express
  • MCP Server 实践之旅第 3 站:MCP 协议亲和性的技术内幕
  • Vue组件化与生命周期:打造灵活高效的前端积木世界
  • 低代码平台搭建
  • VueRouter路由组件的用法介绍
  • Seismic source model -- Brune model ( ω^2 model)
  • 有两个Python脚本都在虚拟环境下运行,怎么打包成一个系统服务,按照顺序启动?
  • 班迪录屏--解决视频剪辑时声音和画面不同步的问题
  • 【COMSOL超材料和超表面仿真设计】
  • Gemma 3n:更智能、更快速、随时离线的AI新纪元
  • leetcode3434. 子数组操作后的最大频率-medium
  • Google Play 账号创建及材料准备
  • 详解MySQL锁机制
  • Python实现栈和队列及其应用场景解析
  • 继续对《道德经》第57章至第81章进行数学形式化建模
  • 高压电工工作内容详解
  • 【PhysUnits】8 关联常量泛型(constant/mod.rs)
  • Oracle 11g导出数据库结构和数据
  • 基于Java的仓库库存管理系统的设计与实现|参考|1w字+
  • 每日一练,冲进国赛!全国青少年信息素养大赛-图形化编程—省赛真题——小鸡吃东西
  • Java注解运行时访问与处理技术详解
  • 修改nmeaLib库增加北斗(BD)和格洛纳斯(GNSS)解析
  • PostGIS实现栅格数据导出TIFF应用实践【ST_AsTiff】
  • 图纸加密软件的核心优势解析