字符串:getline、删除子串.erase()函数、插入子串.insert()函数

2024-01-31 17:28

本文主要是介绍字符串:getline、删除子串.erase()函数、插入子串.insert()函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

getline具体用法:

1、函数形式

getline ( cin,字符串类型:变量名);//默认以换行符结束

1.jpg

getline (cin, 字符串类型:变量名指定的结束符); //指定换行结束符

2.jpg

2注意事项:

1)如果在使用getline()之前有使用scanf()或cin读取数据,那么需要用getline()将前面的换行符读取,再使用getline()。

2)getline()这个函数是可以读取空格,遇到换行符或者EOF结束,但是不读取换行符的。

3)当以指定的结束符(例:’!’)作为结束符时,’!’以及’!’后面的字符就不再读取。

4)经常需要将getline()与while使用

  在这个例子中,逗号运算符的作用就是将最后一个式子作为判定的条件,即while判断的是str!=”#”这个条件,只有当输入到str的为#键时,循环才会结束。

3.jpg

erase具体用法:

erase(开始位置i,删除长度len); 删除从i开始的n个字符(包括i位置)

e1.jpg

insert具体用法:

insert(插入位置i,插入字符串s);在字符串的第i个位置插入s。

i1.jpg

 

第1题     棋子 查看测评数据信息

棋盘从左往右分成 N 个格子。 棋盘上有且仅有 1 只白色棋子 (‘W’表示白旗) 和零个或多个黑色棋子 (‘B’表示黑旗)。在游戏开始时,白棋放置在棋盘的第 1 个格子上,黑棋放置在其他格子上,一个棋子占据一个格子。没有棋子的格子为空(用‘-’表示)。

FJ 然后开始移动白棋,他的每一步都可以做以下两件事之一(不能做其他事):

1、如果白旗的右邻居格子为空,FJ 会将白棋向右移动一个格子。

2、如果白旗的右邻居格子是黑棋,且该黑棋的右邻居为空,那么 FJ 会将白棋移动到该黑棋的右邻居。

FJ 一直重复上述操作,直到不能移动为止。

给定棋盘的初始状态,请输出游戏的最终状态。

输入格式

一个长度不超过 50 的字符串 S,表示棋盘的初始状态。‘W’表示白旗,‘B’表示黑旗,-’表示空格子。

输出格式

一个字符串,表示棋盘的最终状态。

输入/输出例子1

输入:

WB-B-B-

输出:

-B-B-BW

输入/输出例子2

输入:

W--BB---

输出:

--WBB---

输入/输出例子3

输入:

W

输出:

W

输入/输出例子4

输入:

W-B--B---BB-

输出:

--B--B--WBB-

#include<bits/stdc++.h>
using namespace std;
int main() {string board;cin>>board;int n=board.length();int w=0;for(int i=0;i<n;i++){if(board[i]=='W'){w=i;break;}}while(w<n-1){if(board[w+1]=='-'){swap(board[w],board[w+1]);w++;} else if(w<n-2&&board[w+1]=='B'&&board[w+2]=='-'){swap(board[w], board[w+2]);w+=2;} else break;}cout<<board;return 0;
}
第2题     字母统计  查看测评数据信息

        晨晨刚上幼儿园,对字母很感兴趣,特别是对‘b’、‘B’、‘m’、‘M’四个字母感觉很亲切,因为这四个字母很像“爸”、“妈”的发音。每次看到一段英文文章,她都要数一数文章里面有多少个上面四个字母。由于她刚学数数,数不准,想让大哥哥、大姐姐帮她数一下,你能帮她吗?

输入格式

一行:输入一段以‘#‘结束的字符串

输出格式

一行:一个整数代表字符串出现了多少个‘b’、‘B’、‘m’、‘M’字母

输入/输出例子1

输入:

Thanks for being there, mom. Happy Mother’s Day.#

输出:

4

样例解释

对于80%的数据,字符串长度小于255;

对于100%的数据,字符串长度小于1000;

#include<bits/stdc++.h>
using namespace std;
int main() {char str[1000];cin.getline(str,1000,'#');int count[26] = {0};for(int i=0;i<strlen(str);i++){if(str[i]>='a'&&str[i]<='z'){count[str[i]-'a']++;} else if(str[i]>='A'&&str[i]<='Z'){count[str[i]-'A']++;}}int s=0;for(int i=0;i<26;i++){if(count[i]!=0){if('a'+i=='b'||'a'+i=='m')s+=count[i];}}cout<<s;return 0;
}
第3题     动物简介 查看测评数据信息

到了动物园,琦琦开心得跳起来。哗,这里好多动物呀,有老虎,有狮子……,在开心之余,琦琦也不忘妈妈的教导:观察动物时要认真仔细,还要看动物园附上的动物简介呀。

动物的简介原来还有英文版的呢!为了卖弄自己的英文水平,琦琦就告诉妈妈每张动物简介里出现了多少次该动物的名称。注意:琦琦只认识小写字母,而且只要是某部分连续的字母同动物名称完全一样,她就会认为这就是那动物的名称,因此当简介中同时出现了monkeys、smonkey、smonkeys时,她就会说出现了3个猴子的名称。

你能编程完成琦琦的任务吗?

输入格式

第1行为数字n(n<=3000),表示该动物的简介共有n行。

第2行为一个单词,表示琦琦认识的动物名称。

接着是n行,每行为一个长度小于250个字符的字符串,表示动物的简介。

输出格式

输出文件共1行,为简介里出现了多少次琦琦能识别出的动物的单词。

输入/输出例子1

输入:

2

 snake

 The snake is a long and thin animal.

 Snakes have no legs or feet.

输出:

1

#include<bits/stdc++.h>
using namespace std; 
int m; 
string a; 
string b; 
int c; 
int main(){ cin>>m;cin>>a;getline(cin,b); int lena=a.size(); c=0; for(int i=0;i<m;i++){     getline(cin,b);int lenb=b.size(); for(int j=0;j<=lenb-lena;j++){ bool f=true; for(int k=0;k<lena;k++){ if(b[j+k]!=a[k]){ f=false; break; } } if(f)c++;         	       }}cout<<c<<endl; return 0;}
第4题     翻转字符串 查看测评数据信息

给你一个字符串s,你可以进行一种操作:选取前i个字母,得到一个前缀,把它翻转。你可以操作任意次,要求你最后得到的字符串是最小的。

当然,为了增加趣味性,我们有一个限制:你依次取的前缀的长度一定要是递增的。

比如:s="BCDAF",你可以先把前3个翻转,得到"DCBAF",然后把前4个翻转,得到"ABCDF"。

输入格式

第一行为一个字符串s

输出格式

你得到的最小字符串。

输入/输出例子1

输入:

ABBA

输出:

AABB

输入/输出例子2

输入:

ACAB

输出:

AACB

样例解释

s的长度在1到50之间。

#include<bits/stdc++.h>
using namespace std;
string s;
int main(){cin>>s;for(int i=1;i<s.size();i++){if(s[0]>=s[i]){s=s[i]+s;s.erase(i+1,1);}}cout<<s;return 0;
}

这篇关于字符串:getline、删除子串.erase()函数、插入子串.insert()函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/664518

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每