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

【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基本概念 本质&#xff1a;string是C风格的字符串&#xff0c;而string本质上是一个类 string和char*区别&am…...

数据特性库 前言

文章目录 一、num-traits库简介二、核心功能三、更新功能四、使用方式五、应用示例六、结论 一、num-traits库简介 num-traits是Rust编程语言中的一个开源库&#xff0c;专注于为数值类型提供一系列的数学运算特性和接口。它支持泛型数学计算&#xff0c;允许开发者在不指定具…...

jdk和cglib动态代理区别

目标类不同 jdk目标类需要实现接口。 cglib不需要。 代理类生成方式不同 jdk内部字节码生成代理类。 cglib使用ASM字节码生成库生成代理类。 代理类和目标类关系不同 jdk代理类实现目标类接口&#xff0c;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 个格子&#xff0c;格子编号从 1 1 1 到 n n n。每个格子上都染了一种颜色 c o l o r i color_i colori​ 用 [ 1 , m ] [1,m] [1,m] 当中的一个整数表示&#xff09;&…...

【AI图像生成网站Golang】项目测试与优化

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与优化 六、项目测试与优化 在开发过程中&#xff0c;性能优化是保证项目可扩展性和用户体验的关键步骤。本文将详细介绍我如何使用一…...

vue常用自定义指令

参考链接1https://blog.csdn.net/m0_67584973/article/details/139300966?spm1001.2014.3001.5501 参考链接2https://juejin.cn/post/7067051410671534116...

以太网帧、IP数据报图解

注&#xff1a;本文为 “以太网帧、IP数据报”图解相关文章合辑。 未整理去重。 以太网帧、IP数据报的图解格式&#xff08;包含相关例题讲解&#xff09; Rebecca.Yan已于 2023-05-27 14:13:19 修改 一、基础知识 UDP 段、IP 数据包&#xff0c;以太网帧图示 通信过程中&…...

01.大模型起源与发展

知识点 注意力机制&#xff08;Attention&#xff09;的主要用途是什么&#xff1f; 选择重要的信息并忽略不相关的信息 Transformer 模型是基于什么理论构建的&#xff1f; C. 注意力机制&#xff08;Attention&#xff09; GPT 和 BERT 的主要区别是什么&#xff1f; C. GPT…...

leetcode刷题日记03——javascript

题目3&#xff1a; 回文数https://leetcode.cn/problems/palindrome-number/ 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向…...

vue横向滚动日期选择器组件

vue横向滚动日期选择器组件 组件使用到了element-plus组件库和dayjs库&#xff0c;使用前先保证项目中已经下载导入 主要功能&#xff1a;选择日期&#xff0c;点击日期可以让此日期滚动到视图中间&#xff0c;左滑右滑同理&#xff0c;支持跳转至任意日期&#xff0c;支持自…...

【大模型】大模型项目选择 RAGvs微调?

RAG 输入问题&#xff0c;在知识库匹配知识&#xff0c;构建提示词&#xff1a;基于{知识}回答{问题} 微调 用知识问答对重新训练大模型权重&#xff0c;输入问题到调整后的大模型 如何选择 如果业务要求较高&#xff0c;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 什么是元学习&#xff1f; 1.2 元学习的与少样本学习的关系 二、元学习的核心问题与挑战 2.1 核心问题 2.2 挑战 三、元学习的常见方法 3.1 基于优化的元学习 3.1.1 MAML&#xff08;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 之前存在&#xff0c;则覆盖&#xff0c;⽆论原来的数据类型是什么…...

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…...

给机器装上“脑子”—— 一文带你玩转机器学习

目录 一、引言&#xff1a;AI浪潮中的明星——机器学习 二、机器学习的定义与概念 1. 机器学习与传统编程的区别 2. 机器学习的主要任务类型 3. 机器学习的重要组成部分 三、机器学习的工作原理&#xff1a;从数据到模型的魔法之旅 1. 数据收集与预处理——数据是机器的…...

论文笔记:是什么让多模态学习变得困难?

整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记 背景方法OGR基于最小化OGR的多监督信号混合在实践中的应用 实验 背景 直观上&#xff0c;多模态网络接收更多的信息&#xff0c;因此它应该匹配或优于其单峰网络。然而&#xff0c;最好的…...

ChatGPT Search开放:实时多模态搜索新体验

点击访问 chatTools 免费体验GPT最新模型&#xff0c;包括o1推理模型、GPT4o、Claude、Gemini等模型&#xff01; ChatGPT Search&#xff1a;功能亮点解析 本次更新的ChatGPT Search带来了多项令人瞩目的功能&#xff0c;使其在搜索引擎市场中更具竞争力。 1. 高级语音模式&…...

Centos7.9 离线安装docker

实验环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core)下载二进制压缩包 a. 官网下载地址&#xff1a; https://download.docker.com/linux/static/stable/x86_64/b. 阿里云下载地址 https://mirrors.aliyun.com/docker-ce/lin…...

UABEA:终极跨平台Unity资源编辑器,免费解锁游戏资源分析新境界

UABEA&#xff1a;终极跨平台Unity资源编辑器&#xff0c;免费解锁游戏资源分析新境界 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA UABEA&#xff08;Unity Asset Bundle Extractor Avalonia&#…...

Arm Cortex-X2/X3架构解析与性能优化实践

1. Arm Cortex-X2/X3集群架构概述在Armv9架构的高性能计算领域&#xff0c;Cortex-X2和X3代表了当前最先进的CPU设计理念。作为DynamIQ共享单元(DSU)的核心组件&#xff0c;它们通过可配置的缓存层次结构和智能一致性协议&#xff0c;为现代异构计算提供了灵活的解决方案。1.1 …...

All in Token,百度李彦宏指出:Token经济,阿里,百度,腾讯,字节,移动,电信,联通,华为,开启新的Token战争

当AI作为生产力已经成为确定性命题&#xff0c;我们当下应该如何衡量一家AI企业的价值&#xff1f;是看大模型跑分刷榜的能力&#xff0c;还是用户每天消耗的token数量&#xff1f;5月13日的Create2026大会上&#xff0c;百度创始人李彦宏提出了一个全新标准——DAA&#xff0c…...

ncmdumpGUI:解锁网易云音乐格式限制的智能解密工具

ncmdumpGUI&#xff1a;解锁网易云音乐格式限制的智能解密工具 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 在数字音乐时代&#xff0c;我们经常面临一个尴…...

OpenSpire:开源贡献者协作平台的设计理念与实战指南

1. 项目概述&#xff1a;一个面向开源贡献者的协作平台最近在和一些刚接触开源的朋友交流时&#xff0c;发现一个挺普遍的现象&#xff1a;很多人对参与开源项目充满热情&#xff0c;但第一步“如何找到合适的项目并上手”就卡住了。GitHub上项目浩如烟海&#xff0c;一个新手面…...

基于IMAP的邮件自动化处理工具mymailclaw配置与实战指南

1. 项目概述&#xff1a;一个轻量级的邮件抓取与处理工具最近在折腾一个需要自动化处理邮件通知的小项目&#xff0c;发现市面上的方案要么太重&#xff0c;要么不够灵活。直到我遇到了psandis/mymailclaw这个项目&#xff0c;它就像一把小巧而锋利的瑞士军刀&#xff0c;专门用…...

Sophia优化器:二阶曲率感知如何加速大模型训练与调参

1. 项目概述&#xff1a;当优化器遇上“二阶”智慧最近在复现一些前沿的论文实验时&#xff0c;我又一次被优化器的选择给卡住了。AdamW虽然稳&#xff0c;但在某些超大规模模型或特定任务上&#xff0c;总觉得收敛速度不够快&#xff0c;调参又是个玄学。就在我对着损失曲线发…...

智能合约赋能AI代理:构建可验证、可审计的自动化工作流

1. 项目概述&#xff1a;当技能遇上智能合约最近在探索AI代理&#xff08;AI Agent&#xff09;的落地应用时&#xff0c;我遇到了一个非常有意思的项目&#xff1a;saralobo/skill-ai-execution-contract。这个项目名字乍一看有点长&#xff0c;但拆解开来&#xff0c;核心是“…...

锂电池安全使用指南:从原理到实践,避免常见风险

1. 项目概述&#xff1a;从“能用”到“用好”的锂电安全课如果你玩过任何需要脱离电源线工作的电子项目&#xff0c;无论是给一个Arduino小车供电&#xff0c;还是驱动一架四轴飞行器&#xff0c;最终都绕不开一个核心问题&#xff1a;电源。从最基础的碱性电池&#xff0c;到…...

保姆级教程:用PyBullet和Stable-Baselines3搞定你的第一个机器人强化学习项目

从零构建机器人强化学习实战&#xff1a;PyBullet与Stable-Baselines3深度指南 当波士顿动力的机器人完成后空翻时&#xff0c;多数人只看到酷炫的结果&#xff0c;却不知背后是无数次的虚拟试错。本文将带你用PyBullet物理引擎和Stable-Baselines3库&#xff0c;构建首个能学会…...