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