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

9.指针和字符串string类型

指针和字符串string类型

  • 1.指针
  • 2.字符串string类型

1.指针

  • C++完全兼容C语言指针,C++多出一个this指针

  • 交换两数

    #include <iostream>using namespace std;void swap(int *a,int *b){int temp;temp = *a;*a = *b;*b = temp;
    }int main()
    {//交换前int a = 50;int b = 60;cout << "交换前的数字" << endl;cout << a << "," << b << endl;//交换后swap(a,b);cout << "交换后的数字" << endl;cout << a << "," << b << endl;return 0;
    }
    

2.字符串string类型

C语言和C++的对比

  • C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题
  • 在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。它是对C语言字符串(以空字符 ‘\0’ 结尾的字符数组)的一个更安全、更方便的封装。 string 类是在 <string>头文件中定义的,并且位于 std 命名空间中

string类的功能和特性

  • 动态大小:与C语言的字符串不同, string 对象可以动态改变大小,这意味着可以在运行时添加或移除字符,而不需要担心分配和释放内存。

  • 安全性:由于 string 管理其自己的内存,因此减少了内存泄漏和缓冲区溢出的风险。

  • 方便的成员函数: string 类提供了各种操作字符串的方法,如 append() (添加)、 insert()(插入)、 erase() (删除)、 substr() (获取子字符串)等。

  • 操作符重载: string 类重载了多个操作符,使得字符串比较、连接和赋值更加直观。例如,可以使用 + 操作符来连接两个字符串,或者使用 == 操作符来比较两个字符串是否相等。

  • 迭代器支持:像其他标准库容器一样, string 类也支持迭代器,可以使用迭代器来遍历字符串中的字符。

  • 与C语言字符串的兼容性: string 类提供了与C语言字符串互操作的功能。例如,可以使用c_str() 方法来获取一个与C语言字符串兼容的、以 null 结尾的字符数组。

  • 简单的 string 类的使用示例

    #include <iostream>
    #include <string>using namespace std;
    int main(){//打印字符串string str = "hello";cout << str << endl;str = str + "Orange";//可以这样写str += "NO.1";//也可以这样写//str代表源字符串:helloOrangeNO.1//substr(5,6)获取一个子字符串//第一个参数:子字符串开始的位置(基于0的索引),从str的第6个字符开始提取//第二个参数:是子字符串的长度,从指定位置开始,提取6个字符//提取的字符为Orangestring GetTest = str.substr(5,6);//获取字符cout << str << endl;cout << GetTest << endl;
    }
    

相关文章:

9.指针和字符串string类型

指针和字符串string类型 1.指针2.字符串string类型 1.指针 C完全兼容C语言指针&#xff0c;C多出一个this指针 交换两数 #include <iostream>using namespace std;void swap(int *a,int *b){int temp;temp *a;*a *b;*b temp; }int main() {//交换前int a 50;int b …...

八,Linux基础环境搭建(CentOS7)- 安装Mysql和Hive

Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Mysql和Hive 大家注意以下的环境搭建版本号&#xff0c;如果版本不匹配有可能出现问题&#xff01; 一、Mysql下载及安装 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Orac…...

海量数据面试题

⭐️前言⭐️ 本篇文章主要针对在面试时可能涉及到的海量数据的面试题&#xff0c;该类型面试题常常考虑通过位图、布隆过滤器或者哈希的方式来解决。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何…...

基于SSM积分商城管理系统的设计与实现(源码+lw+部署文档+讲解等)

前言 伴随着基础网络设施的不断进步和终端电子设备的高度普及&#xff0c;互联网用户规模越来越大。现在人们越来越离不开计算机网络、互联网所带来的好处了&#xff0c;现如今不同的网站系统遍地都是&#xff0c;现在已经不同于以往的传统的管理方式了&#xff0c;只有跟上时代…...

MLP预售开启,革新去中心化通信生态:智能手机与AI Agent齐上阵

2024年10月22日&#xff0c;Matrix Layer Protocol&#xff08;MLP&#xff09;宣布其备受期待的第一期产品正式进入预售阶段。随着Web3世界的不断发展&#xff0c;去中心化技术已经深入到我们日常生活的方方面面。作为Web3世界中炙手可热的创新项目&#xff0c;Matrix Layer P…...

js获取浏览器指纹

Canvas指纹法 来源&#xff1a;https://www.cnblogs.com/leijing0607/p/8044218.html 从根本上来说&#xff0c;每一种浏览器都会使用不同的图像处理引擎&#xff0c;不同的导出选项&#xff0c;不同的压缩等级&#xff0c;所以每一台电脑绘制出的图形都会有些许不同&#xf…...

乐尚代驾的项目问题

订单状态如果在流转的过程中卡住了&#xff0c;怎么办&#xff1f; 卡住的原因有可能是&#xff1a; 网络问题 网络不稳定或中断可能导致订单状态更新的请求无法及时发送或接收。例如&#xff0c;司机端在更新代驾车辆信息时&#xff0c;如果网络出现故障&#xff0c;可能无法…...

uniapp app.onshow 和 onMounted一样用吗

在uni-app中&#xff0c;onShow和onMounted并不完全相同&#xff0c;它们分别属于应用生命周期和组件生命周期。‌ 应用生命周期中的onShow 在uni-app中&#xff0c;onShow是应用生命周期的一部分&#xff0c;它会在应用启动或从后台进入前台时触发。这意味着它不仅仅局限于页…...

基于Mysql、JavaScript、PHP、ajax开发的MBTI性格测试网站(前端+后端)

源码地址&#xff1a;https://download.csdn.net/download/2302_79553009/89933699 项目简介 本项目旨在构建一个基于MBTI&#xff08;迈尔斯-布里格斯性格分类指标&#xff09;理论的在线平台——“16Personalities”。该平台利用PHP、MySQL、JavaScript等技术栈开发&#xf…...

【问题解决】连接mysql时报错caching_sha2_password can not load

一&#xff0c; 问题 在连接Mysql时报错&#xff0c; caching_sha2_password can not load 二&#xff0c;问题原因 报错信息 "caching_sha2_password can not load" 通常出现在尝试连接到使用 MySQL 8.0 或更高版本的数据库时&#xff0c;因为从 MySQL 8.0 开始&a…...

【瑞吉外卖】-day01

目录 前言 第一天项目启动 获取资料 创建项目 ​编辑 连接本地数据库 连接数据库 修改用户名和密码 ​编辑创建表 创建启动类来进行测试 导入前端页面 创建项目所需目录 检查登录功能 登录界面 登录成功 登录失败 代码 退出功能 易错点 前言 尝试一下企业级项…...

钉钉与金蝶云星空数据集成:提高企业付款申请单处理效率

钉钉数据集成到金蝶云星空&#xff1a;付款申请单的自动下推生成 在企业日常运营中&#xff0c;如何高效地管理和处理付款申请单是一个关键问题。为了提升这一流程的效率&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将钉钉中的付款申请单数据无缝对接到金蝶云星空系…...

GIT使用list

清空当前commit区 方法 1&#xff1a;软重置到初始状态 如果希望保留文件内容&#xff0c;但清空所有 commit 历史&#xff0c;可以使用以下命令&#xff1a; git reset --soft $(git rev-list --max-parents0 HEAD)解释&#xff1a; --soft 表示重置 commit 历史&#xff…...

JavaSE:数组深入学习与复习

学习参考 1、可变参数传递 数组可以是int等基本数据类型&#xff0c;也可以是String等引用类型 package com.test;public class Main {public static void main(String [] args){int [] a {1,2,3,4,5};test(78,90,12,34,56,78,90,12,34,56,78);}public static void test(i…...

Redis 事务 总结

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 事务 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 事务 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis & 事务…...

go sdk的安装或者升级

背景 由于 go 语言的官方sdk还在不断的更新迭代中&#xff0c;有的时候相对应的生态相关的依赖包也在不断的升级&#xff0c;如果很长一段时间不升级自己的本地的go sdk 那么就有可能在拉取代码的时候出现错误&#xff0c;因此有的时候可能需要我们适当的升级下自己的sdk&…...

mongo实操笔记

这个链接我用了其在Windows下的下载安装 是可以的 &#xff0c;不过我太懒了&#xff0c;没有弄成自启动 Windows安装MongoDB_mongodb windows安装-CSDN博客 下面这个链接就更好了&#xff0c;我用了其与springboot整合的测试。可以直接操作mongodb了。 SpringBoot整合Mongo…...

前端算法:树(力扣144、94、145、100、104题)

目录 一、树&#xff08;Tree&#xff09; 1.介绍 2.特点 3.基本术语 4.种类 二、树之操作 1.遍历 前序遍历&#xff08;Pre-order Traversal&#xff09;&#xff1a;访问根节点 -> 遍历左子树 -> 遍历右子树。 中序遍历&#xff08;In-order Traversal&#xf…...

深度学习速通系列:如何使用bert进行超长中文文本命名实体识别

要将超长中文文本按最大 BERT 输入长度进行分割&#xff0c;并使用 bert-chinese-ner 模型进行命名实体识别&#xff0c;可以遵循以下步骤。以下是一个 Python 代码示例&#xff0c;利用 Hugging Face 的 transformers 库来实现&#xff1a; 安装必要的库 如果你还没有安装 Hu…...

【感知模块】深度神经网络实现运动预测

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言运动预测(Motion Prediction)感知中的运动预测(深度神经网络)前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! …...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...