湖南大学信息科学与工程学院第15届生涯规划节周末夜校之C++讲座

(Date:20201205,面向2020级大一新生)

Description

维亚是一家音乐俱乐部里的音乐DJ,在工作中经常使用Dubstep(回响贝斯)音乐。最近,他决定拿出几首老歌进行混音处理。

假定一首歌的歌词是一句英文句子,为了将Dubstep混录到歌曲里,维亚将一定数量(可以为0)的“WUB”插入到歌词的第一个单词之前、最后一个单词之后(可以为0)、以及两个单词之间(在相邻的一对单词之间至少一个),然后他将所有的单词包括“WUB”合并在一起形成一个混音字符串,在俱乐部里播放。

例如,歌词"I AM X"可以转换为回响贝斯混音“WUBWUBIWUBAMWUBWUBX”,但不能转换为“WUBWUBIAMWUBX”。

有人突发奇想,在听过维亚播放过的混音之后,尝试恢复原始的歌曲,请你帮助他。

Input

输入为一行非空字符串,由英文字母组成,长度不超过200个字符。表示这是经过混音之后的歌词,

输入保证在混入“WUB”之前,原始歌词中不包括“WUB”,且歌词至少包含一个单词。

Output

输出为一行一个字符串,表示原始的歌词。

Sample Input

WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB

Sample Output

WE ARE THE CHAMPIONS MY FRIEND

本题使用的字符串处理函数(需#include <string.h>)

string s;

s.length():返回字符串的长度

s.find(str):返回s中找到str字符串的下标位置,如果没有找到,返回string::npos

s.replace(start, length, str):将s字符串从第start个字符开始的length个字符,替换为str字符串

s.erase(start, length):将s字符串从第start个字符开始的length个字符删除

补充一个子串函数:

str=s.substr(start, length):将s字符串从第start个字符开始的length个字符取出,作为一个新的字符串存储在str中(子串)

本题思路和分析

将所有的WUB替换成空格。

需要注意两个点:

(1)首尾的WUB需要直接删除或替换为空,避免首尾多余的空格。因此,当s.find("WUB")==0或者s.length()-2的时候(即首尾位置),将WUB换为空串“”。

(2)多个WUB并列的时候,只需要替换第一个WUB为空格。因此,当s.find("WUB")-1==‘ ’(空格)的时候,说明当前找到WUB的位置之前就是一个空格,因此这种情况也需要直接替换WUB为空串,或者删除WUB。

参考代码和注释

解法一(全使用replace,特殊情况替换为空串)

int main()
{string s;while(cin>>s){while(s.find("WUB")!=string::npos){if(s.find("WUB")==0 || s.find("WUB")==s.length()-2 || s[s.find("WUB")-1]==' ')s.replace(s.find("WUB"),3,"");elses.replace(s.find("WUB"),3," ");}cout<<s<<endl;}return 0;
}

解法二(多个WUB并列时,只替换第一个为空格,多余WUB直接删除)

int main()
{string s;while(cin>>s){while(s.find("WUB")!=string::npos){if(s.find("WUB")==0 || s.find("WUB")==s.length()-2)s.replace(s.find("WUB"),3,"");else if(s[s.find("WUB")-1] == ' ')s.erase(s.find("WUB"), 3);elses.replace(s.find("WUB"),3," ");}cout<<s<<endl;}retur

拓展阅读

C++ String类处理函数:https://blog.csdn.net/qq_43309286/article/details/93191767

【周末夜校】混音问题——字符串函数相关推荐

  1. 【牛客刷题】字符函数和字符串函数

    文章目录 前言 一.函数介绍 1.1 strlen的使用和模拟实现 1.2 strcpy的使用和模拟实现 1.3 strcat的使用和模拟实现 1.4 strcmp的使用和模拟实现 1.5 strnc ...

  2. N诺刷题——字符串、排序、查找、链表

    字符串类问题 1014加密算法 简单,过 1012字符移动 原做法 借助了两个字符串 #include<iostream> #include <string> #include ...

  3. C语言——常见的字符串函数+内存操作函数的介绍及实现

    文章目录 前言 一.字符串函数 1.求字符串长度 strlen 2.长度不受限制的字符串函数strcpy.strcat.strcmp 字符串拷贝 strcpy 字符串追加拷贝 strcat 字符串比较 ...

  4. mysql 条件 函数_mysql 函数 时间函数,数学函数,字符串函数,条件判断函数

    =========================================== mysql 相关函数 ============================================= ...

  5. c++ 多个字符串排序_RPython Data Science系列:数据处理(5)--字符串函数基于R(一)

    ​0 前言 数据根据结构可以分为结构化数据.非结构化数据和半结构化数据,前面介绍的数据处理函数针对于结构化数据,而字符串通常包含非结构化或者半结构化数据,这一部分介绍一下R和Python中的字符串函数 ...

  6. C语言进阶——字符函数和字符串函数

    作者:敲代码の流川枫 博客主页:流川枫的博客 专栏:C语言从入门到进阶 语录:Stay hungry stay foolish 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器--牛客 ...

  7. C语言课程训练系统题-字符串cqupt

    C语言课程训练系统题-字符串cqupt 1.十进制转换十六进制 2.比较两个字符串的大小 3.输出最长的字符串 4.统计一个字符串在另外一个字符串出现的次数 5.有趣的"回文"检测 ...

  8. java检测音频爆音_常见的爆音问题及其解决办法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 常见的爆音问题及其解决办法一.什么情况下会出现爆音? 1.声卡的延迟(LATENCY)设置不当引起的爆音 2.Win98操作系统对设备.系统缓存等的管理不 ...

  9. 解决PulseAudio的爆音问题 – 大幅提高Ubuntu音质

    很早就发现Ubuntu下的音量调节范围比Windows要大得多,刚开始还以为是Linux的音频驱动更NB而窃喜,然而后来发现这并非是什么好事--音量条左端10%和右端20%几乎是废的,前者声音小得根本 ...

  10. C语言字符串函数----strcat()函数用法

    字符串函数<string.h> strcat函数 strcat()函数用于拼接字符串 , 该函数接受两个字符串作为参数. 其函数原型 char *strcat (char *str1,co ...

最新文章

  1. VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)
  2. call/apply/bind 的理解与实例分享
  3. 互联网协议 — 数据交换技术
  4. Shellz中awk的简单用法
  5. 电子工程师需要了解的SMT贴片质量问题汇总(转)
  6. iPhone 7卖点不多出货量下降?剧透分析师又发报告
  7. C# 函数重载 示例 求圆的面积
  8. avalon.js实践 svg地图配置工具
  9. 【C#语言规范】从FxCop归纳出来的一些规范建议
  10. java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
  11. uva225 回溯剪枝
  12. jmeter分布式操作之远程启动功能
  13. 阿里云nginx服务器多站点的配置
  14. SQL如何构建多条件组合查询,而且不降低效率
  15. 使用Docker容器,这些错误千万别犯
  16. android 8 音质,2019安卓公认音质最好手机
  17. iOS UICollectionView— reloadData后变空白,cellForItemAtIndexPath不执行
  18. 【oracle】创建用户(指定表空间)、删除用户
  19. 人人都是产品经理-序
  20. C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理

热门文章

  1. 关于一些Excel宏病毒的清除方法整理合集
  2. c执行cmd pdf2swf_PDF在线翻阅开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)【转】
  3. 人工智能技术与计算机科学区别,智能科学与技术与人工智能的区别
  4. 美图秀秀java代码,【Java】SpringMvc整合美图秀秀M4(头像编辑器)
  5. java web个人博客开发(一需求获取和需求分析文档)
  6. 网站服务器建立数据库连接时出错,WordPress提示建立数据库连接出错的解决办法...
  7. Davids阅读笔记:《Redis设计与实现》
  8. Ubuntu配置机顶盒踩坑记录(Airplay/DLNA/UPuP/Miracast)
  9. css-图片模糊处理
  10. 【正点原子MP157连载】第九章 STM32MP1时钟系统-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南