当前位置: 首页 > 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;
}
http://www.lryc.cn/news/419156.html

相关文章:

  • 智能分析,安全无忧:AI视频分析技术在安全生产中的深度应用
  • 02 Canal的安装使用
  • 【网络安全】玲珑安全第四期
  • 【工具】图片背景移除界面 UI 源码
  • CentOS linux 安装openssl(openssl拒绝服务漏洞【CVE-2022-0778】解决)
  • 假如有一个嵌套集合,怎么通过stream流将集合放到一个集合之中?
  • flutter doctor出现 Unable to find bundled Java version
  • Linux系统修改root密码
  • AI时代,我们还可以做什么?
  • 【生成式人工智能-十-文字、图片、声音生成策略】
  • git pull 注意事项
  • 拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式
  • 监听器——监听着我们WEB项目中的域对象
  • cs使用说明
  • skynet 连接redis
  • quark-design 原生引入使用说明
  • UE开发中的设计模式(二) —— 中介者模式
  • 安卓应用开发学习:聚合数据API获取天气预报
  • 设计模式 - 抽象工厂模式
  • 塔子哥选数字-阿里淘天2024笔试(codefun2000)
  • 【leetcode】杨辉三角(Java语言描述)
  • Vue - 关于vue-kinesis 移动动画组件
  • leetCode- - - 链表
  • Ashok:一款多功能开源网络侦查OSINT工具
  • 没有获取淘宝API的资质怎么获取淘宝数据
  • SQL手工注入
  • 【SQL】大的国家
  • 8月5日学习笔记 glibc安装与安全用户角色权限
  • DrissionPage 一个替代selenium的pip --- 一个可以接管正在运行的chrome包
  • 爬虫入门--了解相关工具