【C++】14___String容器
目录
一、string基本概念
二、string赋值操作
三、字符串拼接
四、 string查找和替换
五、 string字符串比较
六、string插入和删除
七、string子串
一、string基本概念
本质:string是C++风格的字符串,而string本质上是一个类
string和char*区别:
- char*是一个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点:string内部封装了很多成员方法
string构造函数
- string();
- string(const char*s);
- string(const string &str);
- string(int n,char c);
代码示例
#include<iostream>
using namespace std;void test(){string s1; //创建一个空字符串const char* str = "hello world";string s2(str);cout<<s2<<endl;string s3(s2);cout<<s3<<endl;string s4(5,'a');cout<<s4<<endl;
}int main(){test();return 0;
}
二、string赋值操作
赋值的函数原型:
- string& operator=(const char*s); //char*类型字符串赋值给当前的字符串
- string& operator=(const string&s); //把字符串s赋值给当前的字符串
- string& operator=(char c); // 字符赋值给当前的字符串
- string& assign(const char*s); // 把字符串s赋值给当前的字符串
- string& assign(const char*s , int n); // 把字符串s的前n个字符赋给当前的字符串
- string& assign(const string&s); // 把字符串s赋给当前字符串
- string& assign(int n , char c); //用n个字符c赋给当前字符串
三、字符串拼接
函数原型:
- string& operator+=(const char*str);
- string& operator+=(const char c);
- string& operator+=(const string& str);
- string& append(const char * str);
- string& append(const char*str , int n); //把字符串str的前n个字符连接到当前字符串结尾
- string& append(const string &s);
- string& append(const string &s , int pos ,int n); //字符串s中从pos开始的n个字符连接到字符串的结尾
四、 string查找和替换
函数原型:
- int find(const string& str , int pos = 0) const; //查找str第一次出现位置,从pos开始查找
- int find(const char*s , int pos = 0) const; //查找s第一次出现位置,从pos开始查找
- int find(const char*s , int pos , int n) const; //从pos位置查找s的前n个字符第一次位置
- int find(const char c , int pos = 0) const; //查找字符c第一次出现的位置
- int rfind(const string& str , int pos = npos) const; //查找str最后一次位置,从pos开始查找
- int rfind(const char*s , int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
- int rfind(const char*s , int pos , int n) const; //从pos查找s的前n个字符最后一次位置
- int rfind(const char c , int pos = 0) const; //查找字符c最后一次出现位置
- string& replace(int pos , int n , const string& str); //替换从pos开始n个字符为字符串str
- string& replace(int pos , int n , const char* s); //替换从pos开始的n个字符为字符串s
五、 string字符串比较
字符串比较是按字符的ASCII码进行对比
- = 返回 0
- > 返回 1
- < 返回 -1
六、string插入和删除
函数原型:
- string& insert(int pos , const char* s); //插入字符串
- string& insert(int pos , const string& str); //插入字符串
- string& insert(int pos , int n , char c); //在指定位置插入n个字符c
- string& arase(int pos , int n = npos); //删除从pos开始的n个字符
七、string子串
功能:从字符串中获取想要的子串
函数原型:
string substr(int pos = 0, int n = npos)const; //返回由pos开始的n个字符组成的字符串
代码示例
#include<iostream>
using namespace std;void test(){string s1 = "dadhello";string s2 = s1.substr(3,5);cout<<"s2="<<s2<<endl;
}void test1(){// 实用操作,获取用户信息string email = "zhangsan@qq.com";int pos = email.find('@');string s3 = email.substr(0,pos);cout<<s3<<endl;
}int main(){test();test1();return 0;
}相关文章:
【C++】14___String容器
目录 一、string基本概念 二、string赋值操作 三、字符串拼接 四、 string查找和替换 五、 string字符串比较 六、string插入和删除 七、string子串 一、string基本概念 本质:string是C风格的字符串,而string本质上是一个类 string和char*区别&am…...
数据特性库 前言
文章目录 一、num-traits库简介二、核心功能三、更新功能四、使用方式五、应用示例六、结论 一、num-traits库简介 num-traits是Rust编程语言中的一个开源库,专注于为数值类型提供一系列的数学运算特性和接口。它支持泛型数学计算,允许开发者在不指定具…...
jdk和cglib动态代理区别
目标类不同 jdk目标类需要实现接口。 cglib不需要。 代理类生成方式不同 jdk内部字节码生成代理类。 cglib使用ASM字节码生成库生成代理类。 代理类和目标类关系不同 jdk代理类实现目标类接口,jdk无法代理目标类中static或private的方法。 cglib 代理类继承目标类…...
部署Mysql、镜像和容器、常见命令
目录 部署Mysql 镜像和容器 常见命令 部署Mysql 可以有多个容器 docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mysql docker run -d \--name mysql2 \-p 3307:3307 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mys…...
【数学】P2671 [NOIP2015 普及组] 求和
题目背景 NOIP2015 普及组 T3、深入浅出进阶1-5 题目描述 一条狭长的纸带被均匀划分出了 n n n 个格子,格子编号从 1 1 1 到 n n n。每个格子上都染了一种颜色 c o l o r i color_i colori 用 [ 1 , m ] [1,m] [1,m] 当中的一个整数表示)&…...
【AI图像生成网站Golang】项目测试与优化
AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与优化 六、项目测试与优化 在开发过程中,性能优化是保证项目可扩展性和用户体验的关键步骤。本文将详细介绍我如何使用一…...
vue常用自定义指令
参考链接1https://blog.csdn.net/m0_67584973/article/details/139300966?spm1001.2014.3001.5501 参考链接2https://juejin.cn/post/7067051410671534116...
以太网帧、IP数据报图解
注:本文为 “以太网帧、IP数据报”图解相关文章合辑。 未整理去重。 以太网帧、IP数据报的图解格式(包含相关例题讲解) Rebecca.Yan已于 2023-05-27 14:13:19 修改 一、基础知识 UDP 段、IP 数据包,以太网帧图示 通信过程中&…...
01.大模型起源与发展
知识点 注意力机制(Attention)的主要用途是什么? 选择重要的信息并忽略不相关的信息 Transformer 模型是基于什么理论构建的? C. 注意力机制(Attention) GPT 和 BERT 的主要区别是什么? C. GPT…...
leetcode刷题日记03——javascript
题目3: 回文数https://leetcode.cn/problems/palindrome-number/ 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向…...
vue横向滚动日期选择器组件
vue横向滚动日期选择器组件 组件使用到了element-plus组件库和dayjs库,使用前先保证项目中已经下载导入 主要功能:选择日期,点击日期可以让此日期滚动到视图中间,左滑右滑同理,支持跳转至任意日期,支持自…...
【大模型】大模型项目选择 RAGvs微调?
RAG 输入问题,在知识库匹配知识,构建提示词:基于{知识}回答{问题} 微调 用知识问答对重新训练大模型权重,输入问题到调整后的大模型 如何选择 如果业务要求较高,RAG和微调可以一起使用 1-动态数据 选择RAG 原因&a…...
2024年12月CCF-GESP编程能力等级认证Python编程一级真题解析
本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰霍普菲尔德(John J. Hopfield)和杰弗里辛顿(Geof…...
【机器学习】元学习(Meta-learning)
云边有个稻草人-CSDN博客 目录 引言 一、元学习的基本概念 1.1 什么是元学习? 1.2 元学习的与少样本学习的关系 二、元学习的核心问题与挑战 2.1 核心问题 2.2 挑战 三、元学习的常见方法 3.1 基于优化的元学习 3.1.1 MAML(Model-Agnostic Meta…...
详解Redis的String类型及相关命令
目录 SET GET MGET MSET SETNX SET和SETNX和SETXX对比 INCR INCRBY DECR DECRBY INCRBYFLOAT APPEND GETRANGE SETRANGE STRLEN 内部编码 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在,则覆盖,⽆论原来的数据类型是什么…...
android RadioButton + ViewPager+fragment
RadioGroup viewpage fragment 组合显示导航栏 1、首先主界面的布局控件就是RadioGroup viewpage <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools…...
给机器装上“脑子”—— 一文带你玩转机器学习
目录 一、引言:AI浪潮中的明星——机器学习 二、机器学习的定义与概念 1. 机器学习与传统编程的区别 2. 机器学习的主要任务类型 3. 机器学习的重要组成部分 三、机器学习的工作原理:从数据到模型的魔法之旅 1. 数据收集与预处理——数据是机器的…...
论文笔记:是什么让多模态学习变得困难?
整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记 背景方法OGR基于最小化OGR的多监督信号混合在实践中的应用 实验 背景 直观上,多模态网络接收更多的信息,因此它应该匹配或优于其单峰网络。然而,最好的…...
ChatGPT Search开放:实时多模态搜索新体验
点击访问 chatTools 免费体验GPT最新模型,包括o1推理模型、GPT4o、Claude、Gemini等模型! ChatGPT Search:功能亮点解析 本次更新的ChatGPT Search带来了多项令人瞩目的功能,使其在搜索引擎市场中更具竞争力。 1. 高级语音模式&…...
Centos7.9 离线安装docker
实验环境: [root192 ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core)下载二进制压缩包 a. 官网下载地址: https://download.docker.com/linux/static/stable/x86_64/b. 阿里云下载地址 https://mirrors.aliyun.com/docker-ce/lin…...
Jar Analyzer:提升Java开发效率的全方位JAR分析工具
Jar Analyzer:提升Java开发效率的全方位JAR分析工具 【免费下载链接】jar-analyzer Jar Analyzer - 一个 JAR 包 GUI 分析工具,方法调用关系搜索,方法调用链 DFS 算法分析,模拟 JVM 的污点分析验证 DFS 结果,字符串搜索…...
推荐8款提升论文效率的AI工具(含爱毕业aibiye)和简易使用教程
在学术研究领域,AI技术的应用显著提升了论文写作的效率与质量。以下推荐8款功能强大的智能工具,涵盖文献解析、内容生成、文本优化等关键环节,助力研究者高效完成从资料收集到论文润色的全流程工作。这些创新解决方案能够有效简化研究过程&am…...
别再只盯着芯片手册了!用CC6902SO搭建电流检测电路,这些实测数据和避坑经验更重要
别再只盯着芯片手册了!用CC6902SO搭建电流检测电路,这些实测数据和避坑经验更重要 第一次用CC6902SO搭建电流检测电路时,我完全按照芯片手册推荐的电路设计,结果发现实际输出和理论值差了将近15%。这让我意识到,真正影…...
革新性Windows系统管理工具:一站式效能优化与维护解决方案
革新性Windows系统管理工具:一站式效能优化与维护解决方案 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil Windows系统维护往往让…...
宝可梦随机化终极指南:Universal Pokemon Randomizer ZX 完全使用教程
宝可梦随机化终极指南:Universal Pokemon Randomizer ZX 完全使用教程 【免费下载链接】universal-pokemon-randomizer-zx Public repository of source code for the Universal Pokemon Randomizer ZX 项目地址: https://gitcode.com/gh_mirrors/un/universal-po…...
OpenJSCAD.org扩展开发完全手册:从零开始创建自定义IO格式
OpenJSCAD.org扩展开发完全手册:从零开始创建自定义IO格式 【免费下载链接】OpenJSCAD.org JSCAD is an open source set of modular, browser and command line tools for creating parametric 2D and 3D designs with JavaScript code. It provides a quick, prec…...
告别Node版本混乱!用NVM管理多项目环境(Mac保姆级指南+Zsh配置)
告别Node版本混乱!用NVM管理多项目环境(Mac保姆级指南Zsh配置) 在开发过程中,你是否遇到过这样的场景:接手一个老项目时,发现它依赖Node.js 12.x版本,而新项目却要求使用18.x甚至更高版本&#…...
Emmc系列(二)--------协议解析与实战应用
1. Emmc协议基础解析 Emmc协议作为嵌入式存储领域的核心标准,其重要性不言而喻。简单来说,它就像存储设备与主机之间的"普通话",规定了双方如何高效沟通。我在实际项目中遇到过不少因为协议理解不到位导致的通信故障,今…...
BilibiliDown:让B站视频下载变得简单高效
BilibiliDown:让B站视频下载变得简单高效 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliDo…...
从HBM到IEC61000-4-2:解码三大ESD模型在芯片与整机设计中的关键分野
1. 为什么你的芯片还是被静电打坏了? 很多硬件工程师都有过这样的困惑:明明选用的芯片数据手册上明确标注了"ESD防护等级2000V",为什么产品到客户手里还是频繁出现静电损坏?上周我就遇到一个真实案例——某智能门锁厂商…...
