SSL 2058_字符串编辑_字符串

lzusa 发布于 2018-01-06 3 次阅读


题目描述

为了对一些资料进行保密,奶牛们要对某些文章进行编辑。编辑的方法很奇特:要把原有文章的某些词句按照某些规则用另一些词句代替。 
规则的形式如下:原串新串,表示把原串替换成新串。假设有n条规则,第i规则的原串和新串分别为Mi和Ni,则编辑按如下过程进行:开始编辑时,先使用第一条规则,把文章中出现的第一个M1替换成N1,如果替换后的新文章还存在M1,则如上处理,直到文章不存在M1为止;然后用同样的方法使用第2,第3,……,第n条规则进行替换,直到所有的规则都用完为止。注意: 
 每次都要从文章开头开始找要替换的词句 
 一条规则一旦使用完后,将不能再使用 
 每一篇文章都是可编辑的 


#include 
#include 
#include 
#include 
using namespace std;
struct arr
{
    string st, ed;
}a[110];
int main()
{
    int n;
    scanf("%d\n", &n);
    for (int i = 1; i <= n; i++)
    { 
        getline(cin, a[i].st);
        getline(cin, a[i].ed);
    }
    string st;
    getline(cin, st);
    for (int i = 1; i <= n; i++)
    {
        int l = st.find(a[i].st);
        while (l >= 0)
        {
            st.replace(l, a[i].st.size(), a[i].ed);
            l = st.find(a[i].st);
        }
    }
    if (st.size() <= 80)
        cout << st << endl;
    else
    {
        st[80] = '/0';
        cout << st << endl;
    }
}

 

]]>