简单模拟题,用C++的string操作非常简单,注意循环的跳出即可
代码如下:
#include<iostream>
#include<string>
using namespace std;
string str[10];
string newstr[10];
string text;
void Edit(string a,int n)
{
for(int i=0;i<n;i++) //按照规则查找
{
int j;
while(1) //不断查找并应用第i条规则
{
if((j=text.find(str[i]))!=string::npos){
text.replace(j,str[i].length(),newstr[i]);
}
else break; //找不到,跳出,进行下一条规则
}
}
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
cin.get();
for(int i=0;i<n;i++)
{
getline(cin,str[i]);
getline(cin,newstr[i]);
}
getline(cin,text);
Edit(text,n);
cout<<text<<endl;
}
return 0;
}