C++ | 三、字符串string、引用、函数

(以下内容对应卡码网题目10.平均绩点、11.句子缩写)

字符串string类型

  • 相较于用单引号''括起来的字符char类型,用双引号""括起来的字符串string类(这是C++标准库中定义的一个类)可表示多个字符,并支持动态调整(具体见下)

字符串的定义

  • 首先需要引入头文件<string>,另外需要注意的是,string类是标准库的一部分,因此也包含在命名空间std里
  • 声明方式,string variable_name;
  • 初始化方式,string variable_name = "任意字符串";string variable_name(5, 'a');(堆叠5个字符a)

字符串的操作

  • 拼接(加法)
string s1 = "hello";
string s2 = "world";
string s3 = s1 + " " + s2; // 拼接之后的字符串是"hello world"
  • 获取长度,int length = string.size();
  • 下标访问,char letter = string[i];
  • 判断为空,string.empty(),如果为空返回true,否则返回false

字符串结合getline()函数

  • 整行读取,使用getline函数,getline(cin, string)将会从输入中读取内容到string中,遇到换行符停止(该函数还可以用于文件的读取,届时将读取到文件结束符停止)
    • 需要注意的是,如果连用cin和getline,即先使用cin读取输入,紧接着使用getline读取整行,可能会发生getline读取为空的情况。这种情况是因为cin读取到当前行的空白字符即停止,此时如果当前行的输入只有一个字符串,那么将剩下如空格、制表符或换行符没有被读取完毕,此时使用getline并不会读取下一行,而是会读取本行剩余内容,此时只剩下的如果是换行符,则getline会直接读一个空值

引用

  • C++中,引用即变量的别名,修改引用将会同步修改原变量
  • 引用的定义和初始化int &a = b;,这里&代表所初始化的变量为一个引用,并且引用必须要在定义时初始化,且不能够改变所引用的对象
  • 引用常用于作为函数的形参

函数的形参实参

  • 如果使用引用作为函数的形参,则此时函数体内进行的操作将影响实参,因为引用形参相当于实参的别名,对形参的修改会同步影响实参
  • 如果使用常规变量而不是引用作为形参,则实参会在传入函数时复制给形参,这对应两个影响,一是形参的改变将不会影响实参,二是这一复制行为将带来额外的内存开销

Python中的变量值交换以及元组解包(tuple unpacking)

  • C++等很多语言中,进行变量值的交换常常需要创建一个中间临时变量来储存变量之一的值
  • 然而在Python中,当使用形如a, b = b, a的语句时,Python解释器将自动把等号后的b, a创建为一个元组,之后利用元组解包把其值分别赋给a和b,也就实现了相较其它语言更为简洁的a、b值交换的操作
  • 所谓元组解包,其实就是把元组中的值自动依次赋值给多个变量的过程,如a, b, c = (1, 2, 3)就是一个典型的元组解包过程,将分别把1,2,3赋值给a,b,c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂咋做支付系统的核对?

核对是保障资金安全的重要机制。 时效角度&#xff0c;主要有&#xff1a; &#xff08;准&#xff09;实时核对 准确性不如离线核对&#xff0c;且需相应实时核对平台建设 离线核对&#xff08;如 T1 核对&#xff09; 主要问题是发现问题的时机较为后置&#xff0c;部分场景…

OD机考真题搜集:考古学家

题目 有一个考古学家发现一个石碑,但是很可惜,发现时其已经断成多段,原地发现n个断口整齐的石碑碎片。为了破解石碑内容,考古学家希望有程序能帮忙计算复原后的石碑文字组合数,你能帮忙吗? 输入 第一行输入n,n表示石碑碎片的个数。 第二行依次输入石碑碎片上的文字内…

初学者的嵌入式 Linux 计划!

俗话说万事开头难&#xff0c;刚开始的时候&#xff0c;是不是根本就不知如何开始&#xff1f;今天给大家分享一个嵌入式大神总结的Linux学习计划&#xff01;希望给大家提供帮助&#xff0c;&#xff1b;另外想要系统学习也可以dd我&#xff01; 第一阶段&#xff1a;嵌入式硬…

Java基础之并发篇(二)

1、前言 本篇主要基于Java基础之并发篇&#xff08;一&#xff09;继续梳理java中关于并发相关的基础只是。本篇基于网络整理&#xff0c;和自己编辑。在不断的完善补充哦。 2、synchronized 的原理是什么? synchronized是 Java 内置的关键字&#xff0c;它提供了一种独占的…

【复现】大华 DSS 数字监控系统 SQL 注入漏洞_18

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 大华DSS是大华的大型监控管理应用平台&#xff0c;支持几乎所有涉及监控等方面的操作&#xff0c;支持多级跨平台联网等操作。 可…

Echarts图表如何利用formatter自定义tooltip的内容和样式

在展示多数据图表的时候 有的时候需要图例也展示出一些内容来&#xff0c;例如官方这样子&#xff1a;鼠标悬停的时候展示该点数据 但是&#xff0c;官方提供的样式有时不适用所有的开发场景 我的项目需要实现鼠标悬停在某一点的时候&#xff0c;只展示该条线的数据&#xff0…

【XILINX】使用SMPTE UHD-SDI IP时怎么约束core?

SMPTE UHD-SDI IP 通过使用以下步骤指定与IP核心相关联的各种参数的值&#xff0c;可以自定义IP以在设计中使用&#xff1a; 1.从IP目录中选择IP。 2.双击所选IP&#xff0c;或从工具栏或右键单击菜单中选择“自定义IP”命令。 所需约束 rx_clk和tx_clk的周期必须根据要支…

Java21 + SpringBoot3集成WebSocket

文章目录 前言相关技术简介什么是WebSocketWebSocket的原理WebSocket与HTTP协议的关系WebSocket优点WebSocket应用场景 实现方式1. 添加maven依赖2. 添加WebSocket配置类&#xff0c;定义ServerEndpointExporter Bean3. 定义WebSocket Endpoint4. 前端创建WebSocket对象 总结 前…

【Nacos】Nacos 双端版本升级实战手册

背景 由于原来使用的 Nacos 版本&#xff08;1.1.4&#xff09;存在安全漏洞&#xff0c;需要进行升级修复。经过查询后&#xff0c;决定将版本升级到2.2.4。 Nacos 服务共有三个&#xff1a; 192.168.2.190:8848192.168.2.191:8848192.168.2.192:8848 步骤 服务端升级&am…

[Kubernetes]9. K8s ingress讲解借助ingress配置http,https访问k8s集群应用

前面讲解了使用Helm部署mysql集群,这里来看看使用Ingress搭建负载均衡功能 1.介绍 功能类似 Nginx ,可以根据域名、路径把请求转发到不同的 Service , Ingress 为外部访问集群提供了一个 统一 入口, 避免 了 对外暴露集群端口 ,可以配置 https,http访问集群应用,接下来看看如…

2024年《一个项目征服Java中高级体系》博客计划

终于下决心来写一套大型的Java 笔记&#xff0c;不为别的&#xff0c;就是为了强迫自己将整个Java体系梳理清楚&#xff0c;让自己成为内功扎实的Java高级架构师。牛已经吹出来了&#xff0c;不做对不起网友&#xff01; 经过一个多月的持续规划&#xff0c;现在终于定好了整体…

[Docker] 的常用命令

ps 以下命令均为基于linux 1. 帮助命令 docker version # 显示docker的版本信息 docker info # 显示docker的系统信息&#xff0c;包括镜像和容器的数量 docker 命令 --help #帮助命令 sudo su root # 切换root用户 service docker start # 启动docker2. 镜像命令…

8年老鸟,自动化测试经验,测试数据管理分析总结,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 问题&#xff1a;…

Nginx解析域名到指定端口

一、配置文件路径 在大多数Linux系统上&#xff0c;Nginx的配置文件通常位于/etc/nginx目录下。主要的配置文件是nginx.conf&#xff0c;而针对每个站点的配置文件通常存储在/etc/nginx/conf.d/目录或/etc/nginx/sites-available/目录下。 以下是一些常见的Nginx配置文件和目…

Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器

文章目录 1、理解Epoll和对应接口2、实现 1、理解Epoll和对应接口 poll依然需要OS去遍历所有fd。一个进程去多个特定的文件中等待&#xff0c;只要有一个就绪&#xff0c;就使用select/poll系统调用&#xff0c;让操作系统把所有文件遍历一遍&#xff0c;哪些就绪就加上哪些fd…

ssm基于VUE.js的在线教育系统论文

摘 要 随着学习压力越来越大&#xff0c;课外参加补习班的学生越来越多。现在大多数学生采用请家教、自学、报名补习班的方式进行课外的额外学习。请家教费用昂贵&#xff0c;自学效率低&#xff0c;碰到自己不会的知识不能及时得到解达&#xff0c;报名补习班需要时间、地点的…

Uncaught TypeError: Cannot read properties of undefined (reading ‘remove‘)

在Vue 3中&#xff0c;你可能会遇到“Uncaught TypeError: Cannot read properties of undefined (reading remove)”这样的错误&#xff0c;这通常是因为在组件销毁时&#xff0c;尝试访问已经被销毁的元素或事件监听器。 为了解决这个问题&#xff0c;你可以在组件销毁之前&…

x-cmd pkg | trash-cli - 类 Unix 系统的命令行垃圾桶

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trash-cli 是类 Unix 系统的命令行垃圾桶&#xff0c;用于移动文件到回收站&#xff0c;同时会记录文件的原地址和删除日期。 该工具使用与 GNOME、KDE ​​和 XFCE 等桌面环境相同的垃圾桶&#xff0c;所以即使是非 …

Linux网络---DNS域名解析服务

引言&#xff1a;DNS域名解析服务主要讲解了4个实验 DNS正向解析实验DNS反向解析实验DNS主从服务器实验DNS分离解析实验 一、DNS基础 1、DNS简介 DNS域名系统 &#xff08;Domain Name System 缩写为&#xff1a;DNS&#xff09;是因特网的一项核心服务&#xff0c;它作为可…

PVE虚拟机配置文件恢复

一、pve 创建的虚拟机的配置文件位置 在宿主机的 /etc/pve/qemu-server&#xff0c;这里有创建虚拟机的相关硬件信息。 rootpve1:/etc/pve/qemu-server# pwd /etc/pve/qemu-server二、故障现象 在命令行执行qm list不显示虚拟机&#xff0c;查看 宿主机的 /etc/pve/qemu-ser…