all,
be aware that -- contrary to what is stated in the problem description -- the program's filename & I/O are as usual: Main class, input with System.in & output with System.out.
AC-ed with Java!
Moderator: Board moderators
#include <stdio.h>
#include <string.h>
#define MAXN 1000
char str[MAXN]={'\0'},rules[11][82]={'\0'},replace[11][82]={'\0'};
char s1[MAXN]={'\0'},s2[MAXN]={'\0'};
int n;
void Autoedit(char *str,char *rule,char *rep)
{
int len=strlen(str),lr=strlen(rule),k=0;
for(int i=0;i<=len-lr;i++)
{
memset(s1,0,sizeof(s1));
sprintf(s1,"%.*s",lr,str+i);
if(!strcmp(s1,rule))
{
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
sprintf(s1,"%.*s",i,str);
for(int j=i+lr;j<len;j++) s2[k++]=str[j];
memset(str,0,sizeof(str));
sprintf(str,"%.*s%s%s",strlen(s1),s1,rep,s2);
len=strlen(str);
k=0; i--;
}
}
}
int main()
{
freopen("autoedit.in","r",stdin);
freopen("autoedit.out","w",stdout);
while(true)
{
scanf("%d\n",&n);
if(n==0) break;
for(int i=0;i<n;i++)
{
gets(rules[i]);
gets(replace[i]);
}
gets(str);
for(int i=0;i<n;i++)
Autoedit(str,rules[i],replace[i]);
printf("%s\n",str);
}
return 0;
}

Users browsing this forum: No registered users and 1 guest