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库使用例题:
题目及大意:
对于字符串
,当符合以下条件时为合法字符串:
- 是空串
- 如果
是合法的,那么
和
同样合法
- 如果
是合法的,那么
和
同样合法
判断输入的字符串
是否合法
分析:
对于字符串,只有当其由
和
组成,并且没有重复字符、或者为空串时才合法。
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>库
一:string及其标准库 C中使用string类需要添加<string>库。 string初始化: string str1 "Hello"; string str2; str2 "World"; string str3 str1 str2; string在变量的声明以及初始化与C语言的char类字符串一致。但是str…...
智能分析,安全无忧:AI视频分析技术在安全生产中的深度应用
在当今快速发展的科技时代,视频智能分析技术(Intelligent Video Analysis,简称IV)已经成为提升安全生产水平的重要手段。这一技术通过计算机图像视觉分析技术,实现了对场景中目标的自动识别和追踪,有效提升…...
02 Canal的安装使用
1 下载Canal Cannal下载地址如下:https://github.com/alibaba/canal/releases,这里选择Canal 1.1.4版本下载。2 上传解压 #首先创建目录 “/software/canal” [rootnode3 ~]# mkdir -p /software/canal#将Canal安装包解压到创建的canal目录中 [rootnode3 ~]# tar …...
【网络安全】玲珑安全第四期
鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …...
【工具】图片背景移除界面 UI 源码
移除图片背景的UI 照片背景移除和填充颜色的用户界面 仓库地址:https://github.com/MengWoods/remove-background-ui/tree/main 介绍 该项目提供了一个基于 removebg 库的用户界面,用于从输入的照片中移除背景,并用不同的颜色填充背景。 …...
CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)
一、安装 1.下载相关openssl包 下载地址: https://www.openssl.org/source/ 2.将下载好的压缩包放到 /app/server/nginx 路径下(根据自己实际需求定义) 3.切换至该路径 cd /app/server/nginx4.压缩包解压 压缩包解压 :tar -…...
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?
假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中? 问题解释:你有一个嵌套的集合,想要通过 Stream 流的方式将其中嵌套的集合放到一个新的集合中。可以使用 flatMap 方法来实现。这种方法非常适合处理嵌套集合的情况。…...
flutter doctor出现 Unable to find bundled Java version
在安装flutter时执行flutter doctor时出现了如下错误: [!] Android Studio (version 2022.1) ✗ Unable to find bundled Java version. 解决办法 检查下Applications/Android Studio.app/Contents目录下有没有jre文件夹,如果没有则创建一个&…...
Linux系统修改root密码
疑难杂症篇(十六)--虚拟机出现“The system is running in low-graphics mode“问题的解决方案_the system is running in low graphic-CSDN博客...
AI时代,我们还可以做什么?
最近看了本书,书名叫做《拐点:站在 AI 颠覆世界的前夜》,作者是万维钢。 本想着看完后,就能掌握一整套 AI 技巧,结果——竟然学了很多道理。 这本书讨论了以下话题: 我们该怎么理解这个 AI 大时代的哲学&am…...
【生成式人工智能-十-文字、图片、声音生成策略】
人工智能生成文字、图片、声音的方法 生成的本质生成的策略文字AR (Autoregressive Generation)图像和视频 NAR(Non-Autoregressive Generation)解决NAR生成品质低的问题 AR NAR 生成的本质 文字、图像、声音的生成的本质,就是给模型一个输入,模型把基…...
git pull 注意事项
当在执行 git pull 操作并且涉及到合并操作时,Git 会打开默认的文本编辑器(在这种情况下是 nano),以便你编写合并提交(merge commit)消息。这个消息将记录在合并提交中,解释为什么进行了这次合并…...
拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式
随着工业自动化的快速发展,特别是在石油、化工、煤矿等高风险行业中,传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下,还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题࿰…...
监听器——监听着我们WEB项目中的域对象
监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁 ServlertContextListener——它监听ServletContext对象的创建和销毁 contextInitialized 创建的时候会调用 Tomcat启动时调用 contextDestroyed销毁的时候自动会调用的方法 Tomcat终止 这两个方法中携带的参数S…...
cs使用说明
cs分为服务器端和客户端,服务器端最好在linux上配置,客户端在windows中配置,首先要在服务器端配置好,客户端连接才能生效 服务器端配置 将cs包发送到kali虚拟机中(压缩包解压密码为mht) 1,给与cs包最大的权限 chmod -…...
skynet 连接redis
文章目录 概述main.luaagent.luaredis.lua 小结 概述 之前写过skynet 入门篇,还有skynet实操篇;这2篇,主要写了skynet如何使用,还有些skynet的调用流程之类。 其实,看过skynet的demo之后,发现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开发中的设计模式(二) —— 中介者模式
上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合,并通过一个实例具体实现了观察者模式,本篇文章从上篇文章的实例继续,介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…...
安卓应用开发学习:聚合数据API获取天气预报
一、引言 上个月我通过腾讯位置服务,实现了手机定位应用的开发学习。最近在看软件书籍时,又看到了聚合数据API方面的内容。 书上介绍了聚合数据天气预报API的应用,不过书上的代码看得有些难受,我到聚合数据官网,对天气…...
设计模式 - 抽象工厂模式
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、抽象工…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

