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

C++字符串<string>库

一:string及其标准库

        C++中使用string类需要添加<string>库。

        string初始化:

string str1 = "Hello";
string str2;
str2 = "World";
string str3 = str1 + str2;

        string在变量的声明以及初始化与C语言的char类字符串一致。但是string类增加了对多个字符串连接的运算。

        string常用函数:

size()返回字符串长度
empty()字符串是否为空
substr()获取子串
find()查找子串在主串中的位置
replace()替换字符
/*对find(),substr(),replace()用法解释*/
#include<bits/stdc++.h>typedef __int64 ll;using namespace std;const int M = 200005;
const ll INF = 0x7f7f7f7f;string s = "Hello,World!";int main(){cout<<s<<'\n';cout<<s.find("World")<<'\n';//s.find(string)函数返回搜索的字符串string第一次在 s 中出现的位置cout<<s.substr(6,5)<<'\n';//s.substr(pos,n)函数返回字符串 s 从 pos 开始的连续 n 个字符组成的子字符串s.replace(0,5,"ByeBye");//s.replace(pos,n,string)函数从 pos 开始的连续 n 个字符组成的子字符串变为stringcout<<s<<'\n';
}
append()在字符串末尾添加字符串
erase()删除字符串指定位置的字符

insert()

在指定位置插入字符串
clear()清除字符串
/*append(),erase(),insert()用法解释*/
#include<bits/stdc++.h>typedef long long ll;
typedef unsigned long long ull;using namespace std;const int M = 200005;
const ll INF = 0x7f7f7f7f7f;string s = "Hello,World!";int main(){cout<<s<<'\n';s.append("And you");//s.append(string)默认在字符串末尾操作cout<<s<<'\n';s.erase(0,6);//s.erase(pos,n)从 pos 开始删除 n 个字符cout<<s<<'\n';s.insert(s.size()," uwu");//s.insert(pos,string)在pos位置插入string,pos之后的字符默认后移cout<<s<<'\n';s.clear();cout<<s.size()<<'\n';
}

二:string库使用例题:       

题目及大意:

        对于字符串s,当符合以下条件时为合法字符串:

  1. 是空串
  2. 如果S是合法的,那么S+avaava+S同样合法
  3. 如果S是合法的,那么S+avavaavava+S同样合法

        判断输入的字符串s是否合法

分析:

        对于字符串s,只有当其由avaavava组成,并且没有重复字符、或者为空串时才合法。

 AC代码:
 

#include<bits/stdc++.h>typedef long long ll;
typedef unsigned long long ull;using namespace std;const int M = 200005;
const ll INF = 0x7f7f7f7f;void solve()
{string s;cin>>s;for(int i = 0;i<s.size();){if(s.substr(i,5) == "avava")i+=5;else if(s.substr(i,3) == "ava")i+=3;else{cout<<"No"<<'\n';return;}}cout<<"Yes"<<'\n';
}int main(){int tt;cin>>tt;while(tt--)solve();return 0;
}

相关文章:

C++字符串<string>库

一&#xff1a;string及其标准库 C中使用string类需要添加<string>库。 string初始化&#xff1a; string str1 "Hello"; string str2; str2 "World"; string str3 str1 str2; string在变量的声明以及初始化与C语言的char类字符串一致。但是str…...

智能分析,安全无忧:AI视频分析技术在安全生产中的深度应用

在当今快速发展的科技时代&#xff0c;视频智能分析技术&#xff08;Intelligent Video Analysis&#xff0c;简称IV&#xff09;已经成为提升安全生产水平的重要手段。这一技术通过计算机图像视觉分析技术&#xff0c;实现了对场景中目标的自动识别和追踪&#xff0c;有效提升…...

02 Canal的安装使用

1 下载Canal Cannal下载地址如下&#xff1a;https://github.com/alibaba/canal/releases,这里选择Canal 1.1.4版本下载。2 上传解压 #首先创建目录 “/software/canal” [rootnode3 ~]# mkdir -p /software/canal#将Canal安装包解压到创建的canal目录中 [rootnode3 ~]# tar …...

【网络安全】玲珑安全第四期

鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …...

【工具】图片背景移除界面 UI 源码

移除图片背景的UI 照片背景移除和填充颜色的用户界面 仓库地址&#xff1a;https://github.com/MengWoods/remove-background-ui/tree/main 介绍 该项目提供了一个基于 removebg 库的用户界面&#xff0c;用于从输入的照片中移除背景&#xff0c;并用不同的颜色填充背景。 …...

CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)

一、安装 1.下载相关openssl包 下载地址&#xff1a; https://www.openssl.org/source/ 2.将下载好的压缩包放到 /app/server/nginx 路径下&#xff08;根据自己实际需求定义&#xff09; 3.切换至该路径 cd /app/server/nginx4.压缩包解压 压缩包解压 &#xff1a;tar -…...

假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?

假如有一个嵌套集合&#xff0c;怎么通过stream流将集合放到一个集合之中&#xff1f; 问题解释&#xff1a;你有一个嵌套的集合&#xff0c;想要通过 Stream 流的方式将其中嵌套的集合放到一个新的集合中。可以使用 flatMap 方法来实现。这种方法非常适合处理嵌套集合的情况。…...

flutter doctor出现 Unable to find bundled Java version

在安装flutter时执行flutter doctor时出现了如下错误&#xff1a; [!] Android Studio (version 2022.1) ✗ Unable to find bundled Java version. 解决办法 检查下Applications/Android Studio.app/Contents目录下有没有jre文件夹&#xff0c;如果没有则创建一个&…...

Linux系统修改root密码

疑难杂症篇(十六)--虚拟机出现“The system is running in low-graphics mode“问题的解决方案_the system is running in low graphic-CSDN博客...

AI时代,我们还可以做什么?

最近看了本书&#xff0c;书名叫做《拐点&#xff1a;站在 AI 颠覆世界的前夜》&#xff0c;作者是万维钢。 本想着看完后&#xff0c;就能掌握一整套 AI 技巧&#xff0c;结果——竟然学了很多道理。 这本书讨论了以下话题&#xff1a; 我们该怎么理解这个 AI 大时代的哲学&am…...

【生成式人工智能-十-文字、图片、声音生成策略】

人工智能生成文字、图片、声音的方法 生成的本质生成的策略文字AR (Autoregressive Generation)图像和视频 NAR(Non-Autoregressive Generation)解决NAR生成品质低的问题 AR NAR 生成的本质 文字、图像、声音的生成的本质&#xff0c;就是给模型一个输入&#xff0c;模型把基…...

git pull 注意事项

当在执行 git pull 操作并且涉及到合并操作时&#xff0c;Git 会打开默认的文本编辑器&#xff08;在这种情况下是 nano&#xff09;&#xff0c;以便你编写合并提交&#xff08;merge commit&#xff09;消息。这个消息将记录在合并提交中&#xff0c;解释为什么进行了这次合并…...

拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式

随着工业自动化的快速发展&#xff0c;特别是在石油、化工、煤矿等高风险行业中&#xff0c;传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下&#xff0c;还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题&#xff0…...

监听器——监听着我们WEB项目中的域对象

监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁 ServlertContextListener——它监听ServletContext对象的创建和销毁 contextInitialized 创建的时候会调用 Tomcat启动时调用 contextDestroyed销毁的时候自动会调用的方法 Tomcat终止 这两个方法中携带的参数S…...

cs使用说明

cs分为服务器端和客户端&#xff0c;服务器端最好在linux上配置&#xff0c;客户端在windows中配置&#xff0c;首先要在服务器端配置好&#xff0c;客户端连接才能生效 服务器端配置 将cs包发送到kali虚拟机中&#xff08;压缩包解压密码为mht) 1,给与cs包最大的权限 chmod -…...

skynet 连接redis

文章目录 概述main.luaagent.luaredis.lua 小结 概述 之前写过skynet 入门篇&#xff0c;还有skynet实操篇&#xff1b;这2篇&#xff0c;主要写了skynet如何使用&#xff0c;还有些skynet的调用流程之类。 其实&#xff0c;看过skynet的demo之后&#xff0c;发现skynet中没有…...

quark-design 原生引入使用说明

说明:旧项目前后不分离 使用原生html开发的情况下 以动作面板举例: esm全局引入的方式 <script type"module"> import quarkd from "https://cdn.jsdelivr.net/npm/quarkd2.0.4/esm" //直接使用 quarkd.ActionSheet({actions: [{ name: "Opti…...

UE开发中的设计模式(二) —— 中介者模式

上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合&#xff0c;并通过一个实例具体实现了观察者模式&#xff0c;本篇文章从上篇文章的实例继续&#xff0c;介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…...

安卓应用开发学习:聚合数据API获取天气预报

一、引言 上个月我通过腾讯位置服务&#xff0c;实现了手机定位应用的开发学习。最近在看软件书籍时&#xff0c;又看到了聚合数据API方面的内容。 书上介绍了聚合数据天气预报API的应用&#xff0c;不过书上的代码看得有些难受&#xff0c;我到聚合数据官网&#xff0c;对天气…...

设计模式 - 抽象工厂模式

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、抽象工…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

AGain DB和倍数增益的关系

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

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

标注工具核心架构分析——主窗口的图像显示

&#x1f3d7;️ 标注工具核心架构分析 &#x1f4cb; 系统概述 主要有两个核心类&#xff0c;采用经典的 Scene-View 架构模式&#xff1a; &#x1f3af; 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 &#x1f527; 关键函数&…...