题解 P5734 【【深基6.例6】文字处理软件】

· · 题解

问:C++的精髓是什么

答:STL!

好吧直接进入正题

如果你会STL那么这题 so eazy

本题用到的STL:

  1. substr 生成子串,输入位置和长度

  2. insert 在字符串中插入字符串

  3. find 查找字符串中某个字符串的位置并返回它的位置

具体请见 www.cplusplus.com (上面有链接↑,网站是纯英文的)

直接上代码:

#include<iostream>
#include<cmath>
#include<string>
#include<fstream>
using namespace std;
int n,a;
string qwq;
string c1;
string b1;
int b,c,d=-1,e;//并不全有用
int main()
{
    cin>>n;
    cin>>qwq;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        if(a==1)//操作1
        {
            cin>>b1;
            qwq+=b1;
            cout<<qwq<<endl;
        }
        else if(a==2)//操作2
        {
            cin>>b>>c;
            c1=qwq.substr(b,c);
            qwq=c1;
            cout<<qwq;
            cout<<endl;
        }
        else if(a==3)//操作3
        {
            cin>>b>>b1;
            qwq.insert(b,b1);
            cout<<qwq<<endl;
        }
        else if(a==4)//操作4
        {
            cin>>b1;
            if(qwq.find(b1)<qwq.size())//找不到会返回一个诡异的数字(反正比字符串长)
            cout<<qwq.find(b1)<<endl;
            else
            cout<<-1<<endl;
        }
    }
    return 0;
}

使用STL会比手写简单,一般会更优(只是一般

希望这篇题解对你有帮助