当前位置: 首页 > 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)感知中的运动预测(深度神经网络)前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! …...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

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

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

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...