AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving :: String
// 10115 - Automatic Editing
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(void)
{
int i, t;
char *found;
char find[10][80], replace[10][80], text[256], temp[256];
while(cin>>t && t!=0)
{
getchar();
memset(find, 0, sizeof(find));
memset(replace, 0, sizeof(replace));
memset(text, 0, sizeof(text));
memset(temp, 0, sizeof(temp));
for(i=0; i<t; i++)
{
cin.getline(find[i], 80);
cin.getline(replace[i], 80);
}
cin.getline(text, 256);
for(i=0; i<t; i++)
{
found = strstr(text, find[i]);
while(found != NULL)
{
sprintf(temp, "%s", found+strlen(find[i]));
sprintf(found, "%s", replace[i]);
sprintf(found+strlen(replace[i]), "%s", temp);
found = strstr(text, find[i]);
}
}
cout << text << endl;
}
return 0;
}