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

机试 | STL | string | 文字处理软件

题目:

P5734 【深基6.例6】文字处理软件 - 洛谷

不使用库函数

#include<stdio.h>
#include <iostream>
#include<string>
using namespace std;int main()
{int q;//第一行输入一个正整数q,表示操作次数string content;//第二行输入一个字符串str,表示最开始的字符串cin >> q;cin >> content;for (int i = 0; i < q; i++){int flag;cin >> flag;//操作标志if (flag == 1){string str;//插入字符串cin >> str;content = content + str;cout << content << endl;}else if (flag == 2){int a;//截取起始位置int b;//截取长度cin >> a;cin >> b;string temp = content;content = "";//注意是a+b-1,从a开始(包括a)的b个字符for (int j = a; j <= a + b - 1; j++){content += temp[j];}cout << content << endl;}else if (flag == 3){int a;//插入位置string str;//插入字符串cin >> a;cin >> str;string temp;for (int k = 0; k < a; k++){temp += content[k];}temp += str;for (int k = a; k < content.length(); k++){temp += content[k];}content = temp;cout << content << endl;}else if (flag == 4){string str;cin >> str;//查找字符串if (content.find(str) < content.length()) cout << content.find(str) << endl;else cout << -1 << endl;}}return 0;
}

使用库函数

  • find函数在找不到的时候会返回一个很大的数,长度大于字符串的长度,不是返回0
#include<stdio.h>
#include<iostream>
#include<string>using namespace std;int main()
{int q;//操作次数string content;//最开始的字符串cin >> q;cin >> content;while (q){int operation;//操作标志:1,2,3,4cin >> operation;//1 str:后接插入,在文档后面插入字符串 str,并输出文档的字符串;if (operation == 1){string str;//后接插入的字符串cin >> str;content += str;cout << content << endl;}//2 a b:截取文档部分,只保留文档中从第 a 个字符起 b 个字符,并输出文档的字符串;else if (operation == 2){int a, b;cin >> a >> b;string temp = content.substr(a, b);content = temp;cout << content << endl;}//3 a str:插入片段,在文档中第 a 个字符前面插入字符串 str,并输出文档的字符串;else if (operation == 3){int a;string str;cin >> a >> str;content.insert(a, str);cout << content << endl;}//4 str:查找子串,查找字符串 str 在文档中最先的位置并输出;如果找不到输出 −1。else if (operation == 4){string str;cin >> str;//找不到会返回一个诡异的数字,比字符串长//这里判断是否比长度小,防止异常输出if (content.find(str) < content.length()) cout << content.find(str) << endl;//这样会得到异常的输出,在找不到的时候,因为不是0,所以还是执行if,不会输出-1//if (content.find(str)) cout << content.find(str) << endl;else cout << -1 << endl;}q--;}return 0;
}

文章转载自:

http://ip15yzny.qwqzk.cn
http://0RuJFMa2.qwqzk.cn
http://MkyX5TBP.qwqzk.cn
http://TQsauqGW.qwqzk.cn
http://5tnIaDWg.qwqzk.cn
http://WdtYl4Cg.qwqzk.cn
http://0cufiA4P.qwqzk.cn
http://VI6h0tlA.qwqzk.cn
http://QrPF9HtV.qwqzk.cn
http://mokvwsFG.qwqzk.cn
http://jn9VuteN.qwqzk.cn
http://nJVPz1ui.qwqzk.cn
http://JC0GxHt3.qwqzk.cn
http://e3xNkEns.qwqzk.cn
http://mVMLVJHg.qwqzk.cn
http://PivaevCE.qwqzk.cn
http://cOiYgqUU.qwqzk.cn
http://m1W7den0.qwqzk.cn
http://EJ9QBaWj.qwqzk.cn
http://54shuac8.qwqzk.cn
http://JdC0L7SM.qwqzk.cn
http://CiRBCkjn.qwqzk.cn
http://CoCf2OD7.qwqzk.cn
http://1rVUzX7i.qwqzk.cn
http://Hm9LXVfx.qwqzk.cn
http://1dbnlUQp.qwqzk.cn
http://pfzEa7wg.qwqzk.cn
http://c3SyhN5x.qwqzk.cn
http://pw1Dx1y4.qwqzk.cn
http://eUALl0Fb.qwqzk.cn
http://www.dtcms.com/a/214526.html

相关文章:

  • LVGL显示其他大小的中文
  • word的页眉页脚设置
  • RNN 在时序数据处理中的核心作用
  • 多语言视角下的 DOM 操作:从 JavaScript 到 Python、Java 与 C#
  • 11.10 LangGraph状态管理实战:Reducers模式如何重塑企业级多节点协作?
  • Element UI 对话框固定宽度 + 遮罩层深度定制方案
  • Speech Synthesis/Text to Speech(TTS)
  • Vue2实现Office文档(docx、xlsx、pdf)在线预览
  • TCP 三次握手过程详解
  • JVM GC 分类与原理深度解析
  • 能说一下JVM的内存区域吗
  • Docker系列(四):容器操作全栈指南 —— 从入门到生产级管控
  • MongoDB 快速整合 SpringBoot 示例
  • OpenStack组件:镜像服务(Glance)安装
  • 数据的六个特性以及由于独特性产生的一些有趣的想法
  • Qt qml Network error问题
  • GitLab-CI实现自动化测试
  • 完美解决Docker镜像无法拉取问题(转载)
  • 【学习笔记】GitLab 下载安装与配置
  • 「读书报告」Spark实时大数据分析
  • 职坐标IT培训:硬件嵌入式与AI芯片开发实战
  • 开源Vue表单设计器 FcDesigner 组件提供的方法详解
  • 【更新至2023年】1985-2023年全国及各省就业人数数据(无缺失)
  • 从比分滚动到数据革命:体育数据如何重构我们的观赛体验?
  • 使用 Cannonballs 进行实用导体粗糙度建模
  • 深度学习中的卷积和反卷积
  • 制药行业数字化转型:从挑战到智能化落地的实践路径
  • 单细胞数据分析(五):三种整合单细胞数据(Harmony、fastMNN、SCTransform)的完整流程
  • 西部工艺品:匠心独运,传承千年文化之美
  • 【Android】SharePreference原理