semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char s1[101],s2[101];
	char instead1[101],instead2[101],temp[101];
	gets(s1);
	cin>>instead1;
	cin>>instead2;
	int i,j,count=0,countS2=0;
	for(i=0;i<strlen(s1)+1;i++)
	{
		if(s1[i]!=' '&&s1[i]!='\0')
			temp[count++]=s1[i];
		else
		{
			temp[count]='\0';
			if(!strcmp(temp,instead1))
			{
				for(j=0;j<strlen(instead2);j++)
					s2[countS2++]=instead2[j];
			}
			else
				for(j=i-count;j<i-count+strlen(temp);j++)
					s2[countS2++]=s1[j];
			count=0;
		}
		if(s1[i]==' ')
			s2[countS2++]=s1[i];
	}
	s2[countS2]='\0';
	cout<<s2<<endl;
	return 0;
}
int main()
{
	unsigned int i=0,j=0;
	char s[101];
	char a[101];
	char b[101];
	char tmp[101];
	gets(s);
	scanf("%s",a);
	scanf("%s",b);
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]!=' ')
		{
			tmp[j]=s[i];
			j++;
		}
		else
		{
			tmp[j]='\0';
			j=0;
			if(strcmp(tmp,a)==0)
				printf("%s ",b);
			else
				printf("%s ",tmp);
		}
	}
	tmp[j]='\0';
	if(strcmp(tmp,a)==0)
		printf("%s\n",b);
	else
		printf("%s\n",tmp);
	return 0;
}
int main()
{
    char A[100],B[100],T[100],C[100][100];           //??????A?????`B???????`T???????,C??A???? 
    int i,j=0,a=0,l;                                 //??????i`j,????a`l 
    cin.getline(A,100,'\n');                         //????????????? 
    cin.getline(B,100,'\n');
    cin.getline(T,100,'\n');
    l=strlen(A);
    for (i=0;i<l;i++)
    {
        if (A[i]!=' ')
        {
           C[j][a]=A[i];
           a=a+1;
        }
        else 
        {
           a=0;
           j=j+1;
        }
    }
    for (i=0;i<=j;i++)                               
    {
        l=strcmp(C[i],B);
        if (l==0)                                   //?????????A????
           strcpy(C[i],T);                          //?? 
    }
    for (i=0;i<j;i++)                               //?????
        cout<<C[i]<<" ";
    cout<<C[j];
    return 0;
}
char s[100],a[100],b[100],ns[100][100];
int main(){
int i=0,j=0,k=0;
       gets(s);
       gets(a);
       gets(b);
       for(i=0;i<strlen(s);i++){
          if(s[i]!=' '){
              ns[j][k++]=s[i];
          }
          else{
              j++;
              k=0;
          }
       }
for(i=0;i<=j;i++){
   if(!strcmp(ns[i],a)){
      strcpy(ns[i],b);
   }
}
for(i=0;i<j;i++){
    printf("%s ",ns[i]);
} 
      printf("%s",ns[j]);
return 0;
}
int main()
{
    int lenth1,lenthw1,lenthw2,i,j,num=0,row=0,flag,a[101];
    char s1[101],word[101],wordnew[101],olds1[101][101];
    cin.getline(s1,101);
    cin>>word;
    cin>>wordnew;
    lenth1=strlen(s1);
    lenthw1=strlen(word);
    lenthw2=strlen(wordnew);
    for(i=0;i<lenth1;i++)
      {
		if (s1[i]==' ') 
	    	{num++;
             row=0;}
		 else 
          {olds1[num][row]=s1[i];
	       a[num]=row;
		   row++;}
       }
    for(i=0;i<=num;i++)
       { flag=1;
         for(j=0;j<lenthw1;j++)
         { if(olds1[i][j]!=word[j]) flag=0;}
         if(flag==1) 
           {a[i]=lenthw2-1;
			 for(j=0;j<lenthw2;j++) olds1[i][j]=wordnew[j];}
       }
    for(i=0;i<num;i++) 
     {for(j=0;j<=a[i];j++)
      cout<<olds1[i][j];
     	cout<<" ";}
    for(j=0;j<=a[num];j++)
	 cout<<olds1[num][j];
     return 0;
}
int main()
{
	char a[PI],b[PI],sun[PI];
	struct sum{
		char tmp[20];
	};
	struct sum s[100];
	gets(sun);
	gets(a);
	gets(b);
	int i,len,j;
	len=strlen(sun);
	sun[len+1]=' ';

	int k=0,n=0;
	for (i=0;i<=len+1;i++)
	{
		if (sun[i]==' ')
		{
			n++;
			int t;
			t=i-k;
			for (j=0;j<k;j++)
			{
			
				s[n].tmp[j]=sun[t];
				t++;
			}
			s[n].tmp[j]='\0';
			k=0;
		}
		else 
			k++;
	}
	s[n].tmp[j-1]='\0';
	for (i=1;i<=n;i++)
	{
		if (strcmp(s[i].tmp,a)==0)
			strcpy(s[i].tmp,b);
		if (i!=n)
			printf("%s ",s[i].tmp);
		else
			printf("%s",s[i].tmp);
	}
	
	return 0;
}
int main()//???
{//?????
	char s[200]={0};
	char a[100]={0},b[100]={0};
	int c[200]={0};                                                          //c???????????
	int lena=0,lenb=0,lens=0,i=0,j=0,k=0,count=0,t=0;
	cin.get(s,200,'\n');
	cin>>a>>b;
	lena=strlen(a);
	lenb=strlen(b);
	lens=strlen(s);                                                      //??????????
	if((s[0]==a[0])&&(s[i+lena]==32||s[i+lena]==0))   //????????????,????????????s[0]==a[0]-32
	{
			for(j=0;j<lena;j++)
			{
				if(s[i+j]==a[j])
					count++;
			}
			if(count==lena)                                      //??????????????K+1,?c[0]=0,
				k++;              
				count=0;
	}
	for(i=1;i<lens;i++,count=0)
	{
		if((s[i]==a[0])&&(s[i+lena]==32||s[i+lena]==0)&&(s[i-1]==32))   //??????????
		{
			for(j=0;j<lena;j++)
			{
				if(s[i+j]==a[j])
					count++;
			}
			if(count==lena)
			{
				c[k]=i;
				k++;                                               //k?????????
			}
		}
	}
	c[k]=201;                                           //??c[k]??????????????     
	if(lena<lenb)                                       //????????????????????
	{                                   
		 t=lenb-lena;                                   //t????????              
		 for(i=lens-1;i>=0;i--)
			for(j=k-1;j>=0;j--)                        
			{
				if(i>=c[j]&&i<c[j+1])                    //???s???
					s[i+(j+1)*t]=s[i];
			}
			for(i=0;i<k;i++)
				for(j=0;j<lenb;j++)                   //?????
					s[c[i]+i*t+j]=b[j];
	}
	else if(lena>=lenb)
	{
		t=lena-lenb;
		for(i=c[0]+t;i<lens;i++)
			for(j=0;j<k;j++)
			{
				if(i>=c[j]&&i<c[j+1])
				s[i]=s[i+(j+1)*t];
			}
			b[lenb]=32;                                 //??????
			for(i=0;i<k;i++)
				for(j=0;j<=lenb;j++)
					s[c[i]-i*t+j]=b[j];
	}
	int l=strlen(s);                                        //??????????
	if(s[l-1]==32)
		s[l-1]=0;
	cout<<s;
         return 0;
}//?????
int main()
{
	char s1[100];
	char a[100];
	char b[100];
	char s2[15][20];
	int i,k,x=0,m,n;
	char c,d;
	gets(s1);
	gets(a);
	gets(b);
	m=0;
	n=0;
	k=0;
	for(i=0;(c=s1[i])!='\0';i++)
	{
		if(c!=' ')
		{
			s2[k][m]=c;
			m++;
		}
		else
		{
			s2[k][m]='\0';
			m=0;
			k++;
			n++;
		}
	}
	s2[n][m]='\0';
	for(i=0;i<=n;i++)
	{
		if(strcmp(s2[i],a)==0)
		{
			x=1;
			for(k=0;(d=b[k])!='\0';k++)
			{
				s2[i][k]=b[k];
			}
			s2[i][k]='\0';
		}
	}
	if(x==1)
	{
		for(i=0;i<n;i++)
		{
			printf("%s ",s2[i]);
		}
		printf("%s",s2[n]);
	}
	else
	{
		puts(s1);
	}	
	return 0;
}
int check(char p[100],char q[100],int a,int b)
{
  int m,x;
  for(m=0;m<=a;m++)
  {
    if(p[b+m]==q[m]) x=1;
    else 
    {
      x=0;
      break;
    }
  }
  return(x);
}
void main()
{
  char s[100],a[100],b[100];
  int i,l,j;
   for(i=0;i<100;i++)
  {
    s[i]='\0';
    a[i]='\0';
    b[i]='\0';
  }
  gets(s);
  scanf("%s%s",a,b);
  l=strlen(s);
  s[l]=' ';
  l=strlen(a);
  a[l]=' ';
  if(check(s,a,l,0)) printf("%s",b);
  else
   { 
     i=0;
     do
     {
      printf("%c",s[i]);
      i++;
     }
     while(s[i]!=' '); 
    }
  i=0;
  while(s[i]!=' ') i++;
  for(i=i+1;i<100;)
  {
    j=i;
    if(s[i]=='\0') break;
    else if(check(s,a,l,i)) printf(" %s",b);
    else
    {
      printf(" ");
      do
     {
      printf("%c",s[i]);
      i++;
     }
     while(s[i]!=' '); 
    }
    i=j;
    while(s[i]!=' ') i++;
    i=i+1;
  }
}
int main()
{
char a[100],b[100],c[100];
int i,j,k,lena,lenb,lenc,flag;
for(i=0;i<100;i++)
a[i]=0;
gets(a);                     //???????? 
gets(b);
gets(c);
lena=strlen(a);             //?????????
lenb=strlen(b);
lenc=strlen(c);
for(i=0;i<=lena-lenb;i++)   //??????a???b?????
{
	if(i==0 || a[i-1]==' ')
	{
		flag=1;
		for(j=0;j<lenb;j++)
		{
			if(a[i+j]!=b[j])
			{flag=0;break;}
		}
		if(flag==1)
		{
			if(lenb>=lenc)     //????????
			{
				for(k=i,j=0;k<i+lenc,j<lenc;k++,j++) //?????
					{a[k]=c[j];}
				for(k=i+lenc;k<lena;k++)     //?????????
					{a[k]=a[k+lenb-1];}
				i+=lenc-1;
				lena-=lenb-lenc;
			}
			if(lenb<lenc)     //????????
			{
				for(k=lena-1+lenc-lenb;k>=i+lenc;k--)  //??????????
					{a[k]=a[k-lenc+lenb];}
				for(k=i,j=0;k<i+lenc,j<lenc;k++,j++)  //??????
					{a[k]=c[j];}
				i+=lenc-1;                   
				lena+=lenc-lenb;              //??????
			}
		}
	}
}
cout<<a<<endl;
return 0;
}
int main()
{
	char a[20][15],b[15],c[15],d;
	int i,j;
	for(i=0,d=' ';d!='\n';i++)
	{scanf("%s",a[i]);
	scanf("%c",&d);
	}
	j=i;
	scanf("%s",b);
	scanf("%s",c);
	for(i=0;i<=j-1;i++)
	{
		if(strcmp(a[i],b)==0)
		strcpy(a[i],c);
	}
	for(i=0;i<=j-2;i++)
	{printf("%s ",a[i]);}
	printf("%s",a[j-1]);
	return 0;
}
int main()
{
	char *s;
	char *a;
	char *b;
	s=(char *)malloc(sizeof (char)*1000);
	a=(char *)malloc(sizeof (char)*1000);
	b=(char *)malloc(sizeof (char)*1000);
	char ans[1001]={'\0'};
	int i,j,k,p;
	gets(s);
	gets(a);
	gets(b);
	int l,la,lb;
	l=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	int index;
	index=0;
	for (i=0;i<l;i++)
	{
		k=0;
		for (j=0;j<la;j++)
		{
			if (s[i+j]!=a[j]) k=1;
		}
		if (((i+la)<l)&&(s[i+la]!=' ')) k=1;
		if ((i>0)&&(s[i-1]!=' ')) k=1;
		if (k==0) 
		{
			for (p=0;p<lb;p++) ans[p+index]=b[p];
			index=index+lb-1;
			i=i+la-1;
		}
		if (k>0) ans[index]=s[i];
        index++;
	}
	printf("%s\n",ans);
	free(a);
	free(b);
	free(s);
	return 0;
}
int main()
{
 char s[105],a[105],b[105],ch[105][105]; //??????????????????????????????
 int i,j=0,k=0,word,lens,lenb=0;  //?????????????????????????
 cin.getline(s,105,'\n');  //80?????????????????
 cin.getline(a,105,'\n');
 cin.getline(b,105,'\n');
 for(i=0;i<105;i++)
 {
  if(b[i]!='\0')     //?????????lenb
   lenb+=1;
  else
   break;
 }
 for(i=0;i<105;i++)
 {
  if(s[i]==' ')     //????????
  {
   ch[j][k]='\0';    //?????????
   k=0;      //??????
   j+=1;      //??????
  }
  else if(s[i]=='\0')    //?????????
  {
   ch[j][k]=s[i];    //?????????
   lens=i-1;     //???????lens
   word=j;      //???????word
   break;
  }
  else
  {
   ch[j][k]=s[i];    //?????????????????
   k+=1;      //???????
  }
 }
 for(i=0;i<=word;i++)
 {
  k=1;
  if (strlen(ch[i])!=strlen(a)) k=0;
  else{
  for(j=0;j<strlen(a);j++)  //???????????????????????
   if(ch[i][j]!=a[j])   //?????????????
	   k=0;  }   //????0
  if(k==1)      //?????1????????????
  {
   for(j=0;j<=lenb+1;j++)
    ch[i][j]=b[j];   //????
  }
 }
 for(i=0;i<word;i++)
 {
	 cout<<ch[i]<<" ";
  //for(j=0;j<80;j++)
 // {
   //cout<<ch[i][j];
   //if(ch[i][j]=='\0')
   // break;
 // }
	 //???????????, ?VC?DEV??\0?????? 
     //??GRIDS??G++???????????\0??????? 
 }
 for(j=0;j<105;j++)
 {
  cout<<ch[word][j];    //???????
  if(ch[word][j+1]=='\0')
   break;
 }
 return 0;
}
int main()
{
	char str[40][101]={'\0'};
	char c[101]={'\0'};
	cin.getline(c,101);
	int i=0,j=0,k=0;
	while(c[i]!='\0')
	{
		if(c[i]!=' ')
		{
			str[j][k]=c[i];
			k++;
		}
		if(c[i]==' ')
		{
			j++;
			k=0;
		}
		i++;
	}
	char st1[100],st2[100];
	cin>>st1;
	cin>>st2;
	for(i=0;i<j+1;i++)
	    if(strcmp(str[i],st1)==0)
			strcpy(str[i],st2);
	for(i=0;i<j;i++)
		cout<<str[i]<<" ";
	cout<<str[j];
	return 0;
}
int main()
{
	char s1[110];
	char ss[110][100];
	char s2[110];
	char s3[110];
	char temp[110];
	int i=0,j=0,k=0;
	gets(s1);
	gets(s2);
	gets(s3);
	for(i=0;s1[i]!='\0';i++)
	{
		if(s1[i]!=' ')
			ss[j][k++]=s1[i];
		else if(s1[i]==' ')
		{
			ss[j][k]='\0';
			j++;
			k=0;				
		}	
	}
	
	for(int p=0;p<j+1;p++)
	{
		if(strcmp(ss[p],s2)==0)
			strcpy(ss[p],s3);
			
	}
	for(int q=0;q<j;q++)
	{
		printf("%s ",ss[q]);	
	}
	printf("%s",ss[j]);
	
	//printf("%s\n",ss[p]);
	return 0;		
}
int main()
{  int same,i,j,k;
    char str[100],sub[100],repl[100];
   gets(str);
   gets(sub);
   gets(repl);
   for(i=0;i<strlen(str);i++)
   { same=1;
     for(j=0;j<strlen(sub);j++)
     {if(str[i+j]!=sub[j])
      same=0;
     }
     if((same==1&&str[i-1]==' ')||(same==1&&i==0))
     { printf("%s",repl);
       i+=strlen(sub)-1;
     }
     else
     printf("%c",str[i]);

   }
   return 0;
}
main()
{char words[20][100],sub[100],subed[100];
 char string[500];
 int i,d1=0,d2=0,len,n=1;
 char(*p)[100];
 gets(string);
 len=strlen(string);
 for(i=0,d2=0;i<len&&d2<100;i++,d2++)
	{if(string[i]==' '){words[d1][d2]='\0';d1++;n++;d2=0;}
	if(string[i]==' ')continue;
	if(string[i-1]==' ')d2--;
	words[d1][d2]=string[i];		
	}
 words[d1][d2]='\0';
 p=words;
 scanf("%s",subed);
 scanf("%s",sub);
 for(i=0;i<n;i++)
	 if(strcmp(*(p+i),subed)==0)strcpy(*(p+i),sub);
 for(i=0;i<n-1;i++)
	 printf("%s ",p+i);
 printf("%s",p+n-1);
}
int main()
{
	char str[100],word[100]={'0'},change[100],chafor[100];//word?????????????,change?????????,chafor????????
	char a[100][100]={{'0'},{'0'}};
	int i,j,len,m,start=0,num=1;//num?????????

	gets(str);
	gets(change);
	gets(chafor);
	len=strlen(str);
	for(i=0;i<len;i++)//??????????????
	{
		if(str[i]==' ')
			num+=1;

	}
	for(i=0;i<num;i++)
	{
		m=0;
		for(j=start;j<len;j++)//start????????????
		{
			if(str[j]!=' ')
			{
				a[i][m]=str[j];
				m+=1;
			}
			else
			{
				start=j+1;
				break;
			}
		}	
	}
	for(i=0;i<num;i++)
	{
		if(strcmp(a[i],change)==0)
			strcpy(a[i],chafor);
	}
	printf("%s",a[0]);
	for(i=1;i<num;i++)
		printf(" %s",a[i]);
	return 0;
}
void main()
{
int i,j,k,n;
char (*p)[100],*p1,*p2,*a;
char string[100],str[100][100],str1[100],str2[100];
n=0;k=1;
p=str;p1=str1;p2=str2;
a=string;
gets(string);
gets(str1);gets(str2);

for (i=0;*(a+i)!='\0';i++)
  if (*(a+i)==' ')
	  k++;

for (i=0;*(a+n)!='\0';i++)
{  for(j=0;*(a+n)!=' '&&*(a+n)!='\0';j++)
	  { *(*(p+i)+j)=*(a+n);
n++;}         
  *(*(p+i)+j)='\0';
  n=n+1;
}
n=n-1;

for(i=0;i<n;i++)
  if(strcmp(*(p+i),p1)==0)
  strcpy(*(p+i),p2);

for (i=0;i<k-1;i++)
{printf("%s",*(p+i));
printf(" ");}
printf("%s",*(p+k-1));


}
int main()
{
    char *p1,*p2;
    int i,j,n,m,w;
    char r[200],s[200],t[200];
    gets(r);gets(s);gets(t);
    p1=r;p2=s;n=strlen(s);
    for(i=0;*(p1+i)!='\0';)
    {
        if(*(p1+i)!=*p2) {printf("%c",*(p1+i));i++;}
        else
        {
            for(j=1,w=1;j<n;j++)
            {
                if(*(p1+i+j)!=*(p2+j))
                {
                    for(m=0;m<j;m++) printf("%c",*(p1+i+m));break;
                }
                w++;
            }
            if (w==n)
            {if(((*(p1+i+n)==' '||*(p1+i+n)=='\0')&&*(p1+i-1)==' ')||((i==0)&&*(p1+n)==' ')) printf("%s",t);
            else printf("%s",s);
            i=i+n;}
            else i=i+j;
        }

    }
    return 0;
}
struct node
{
	char str[110];
}all[110];

int main()
{
	char s[110], str[110], word[110], one[110];
	int i, j, k;
	gets(s);
	gets(str);
	gets(word);

	for(k=0, j=0, i=0;  ; i++){
		if(s[i]==' ' || s[i]=='\0'){
			one[j] = '\0';
			strcpy(all[k].str, one);
			j=0; 
			k++;
			if(s[i]=='\0')
				break;
			continue;
		}
		one[j++] = s[i];
	}

	for(i=0; i<k; i++){
		if(strcmp(all[i].str, str)==0)
			strcpy(all[i].str, word);
	}

	for(i=0; i<k; i++){
		if(i<k-1)
			printf("%s ", all[i].str);
		else
			printf("%s", all[i].str);
	}
	
	return 0;
}
int main()
{
char str[100],str1[100],str2[100];
gets(str);
gets(str1);
gets(str2);
int len=strlen(str);
char**temp=(char**)malloc(len*sizeof(int*));
int i,j=0,k=0;
for(i=0;i<len;i++)
temp[i]=(char*)malloc(len*sizeof(int));
for(i=0;i<len;i++)
	{
	if(i==len-1)temp[j][k+1]=0;
	if(str[i]!=' ')
	{temp[j][k]=str[i];
	k++;}
	else {temp[j][k]=0;j++;k=0;}
	}
for(i=0;i<=j;i++)
{if(strcmp(temp[i],str1)==0)
strcpy(temp[i],str2);}

for(i=0;i<=j-1;i++)
{printf("%s",temp[i]);
printf(" ");}

printf("%s",temp[j]);

for(i=0;i<len;i++)
free(temp[i]);
free(temp);
return(0);
}
void main()
{
	char str[20][20],a[20],b[20],*p1,*p2,*p[20];
    int i=0,j;
	for(i=0;i<20;i++)
		p[i]=str[i];
	i=0;
	while(1)
	{
		scanf("%s",str[i]);
		if(getchar()=='\n') break;
		i++;
	}
	scanf("%s%s",a,b);
	p1=a;p2=b;
	for(j=0;j<=i;j++)
		if(strcmp(p[j],p1)==0) p[j]=p2;
	
	for(j=0;j<=i;j++)
	{
		if (j==0)printf("%s",p[j]);
		else
			printf(" %s",p[j]);
	}
}
int main()
{
	char s[50][100]={'\0'};//????
	char a[100],b[100];
	int i,j;

	cin>>s[0];
	i=1;
	while(cin.peek()==' ')
	{
		cin>>s[i++];
	}
	cin>>a>>b;

	for(i=0;s[i][0]!='\0';i++)
	{
		if(strcmp(a,s[i])==0)
		{
			strcpy(s[i],b);
		}
	}

cout<<s[0];
	for(i=1;s[i][0]!='\0';i++)
	    cout<<" "<<s[i];

  
	return 0;
}
int main()
{
	char s[101],a[101],b[101];
	cin.getline(s,101);
	cin.getline(a,101);
	cin.getline(b,101);
	char word[100][100];
	int len=strlen(s);//???????
	int i,j=0,n=0,flag=0;
	for(i=0;s[i]!='\0';i++)//?????s????????
	{
		if(s[i]==' ')
		{
			flag=0;
		}
		else if(flag==0)
		{
			flag=1;
			n++;
		}
	}
	int count=0;int count1[100];
	for(i=0;i<n;i++)
	{
		count1[i]=0;
		do
		{ word[i][j-count]=s[j];
		  count1[i]++;
		  j++;
		}while(s[j]!=' ' && s[j]!='\0');
		count1[i]++;
		word[i][j-count]='\0';
		j++;
		count=count+count1[i];
	}
	for(i=0;i<n;i++)//????
	{
		if(strcmp(word[i],a)==0)
		{
			strcpy(word[i],b);
		}
	}
	for(i=0;i<n-1;i++)//?????????
	{
		cout<<word[i]<<" ";
	}
	cout<<word[n-1];
	cout<<endl;
	return 0;
}
/**
 * ???3.cpp
 * ???????
 * ??????
 * ???2010?11?17?
 */
int main()
{
    char a[100],b[100],c[100];
    int i,j,k,lena,lenb,lenc,flag;
    for(i=0;i<100;i++)
    {a[i]=0;}
    gets(a);                     //???????? 
    gets(b);
    gets(c);
    lena=strlen(a);             //?????????
    lenb=strlen(b);
    lenc=strlen(c);
    for(i=0;i<=lena-lenb;i++)   //??????a???b?????
    {
         flag=1;
         for(j=0;j<lenb;j++)
         {
              if(a[i+j]!=b[j])
              {flag=0;break;}
         }
         if(flag==1 && (i==0 || a[i-1]==' ') && (i==lena-lenb || a[i+lenb]==' ') )
         {
            if(lenb>lenc)     //????????
            {
                for(k=i,j=0;k<i+lenc,j<lenc;k++,j++) //?????
				{a[k]=c[j];}
                for(k=i+lenc;k<lena;k++)     //?????????
                {a[k]=a[k+lenb-1];}
                i+=lenc-1;
                lena-=lenb-lenc;
            }
			if(lenb==lenc)
			{
				for(k=i,j=0;k<i+lenc,j<lenc;k++,j++) //?????
				{a[k]=c[j];}
			}
            if(lenb<lenc)     //????????
            {
                for(k=lena-1+lenc-lenb;k>=i+lenc;k--)  //??????????
                {a[k]=a[k-lenc+lenb];}
                for(k=i,j=0;k<i+lenc,j<lenc;k++,j++)  //??????
                {a[k]=c[j];}
                i+=lenc-1;                   
                lena+=lenc-lenb;              //??????
            }
         }
    }
    cout<<a<<endl;
    return 0;
}
int main(int argc, char* argv[])
{
	char str[255],from[255],to[255];
	char*s=str,*p;
	gets(s);
	scanf("%s%s",from,to);
	strcat(s," ");
	while(*s){
		p=strchr(s,' ');
		*p='\0';
		printf((strcmp(s,from)==0)?to:s);
		s=p+1;
		if(*s)
			printf(" ");
	}
	return 0;
}
void main()
{
	int i,j,l,ll,ll2;
	char a[100];
	char aa[100];
	char bb[100];
	char h[100][100];
	int c[100];
	for(i=0;i<100;i++){
		c[i]=0;
	}
	gets(a);
	gets(aa);
	gets(bb);
	l=strlen(a);
	ll=strlen(aa);
	ll2=strlen(bb);
	int n=0;
	for(i=0;a[i]!='\0';i++){
		if(a[i]==' '){
			n=n+1;
		}
	}
	int b[50];
	for(i=0;i<n;i++){
		for(j=0;a[j]!='\0';j++){
			if(a[j]==' '&&c[j]==0){
				b[i]=j;
				c[j]=1;
				break;
			}
		}
	}
	int d[50];
	d[0]=b[0];
	for(i=1;i<n;i++){
		d[i]=b[i]-b[i-1]-1;
	}
	d[n]=l-b[n-1]-1;
	for(i=1;i<n;i++){
		for(j=b[i-1]+1;j<b[i];j++){
			h[i][j-b[i-1]-1]=a[j];
		}
	}
	for(j=0;j<b[0];j++){
		h[0][j]=a[j];
	}
	for(j=b[n-1]+1;j<l;j++){
		h[n][j-b[n-1]-1]=a[j];
	}
	for(i=0;i<=n;i++){
		if(d[i]==ll){
			int t=0;
			for(j=0;j<d[i];j++){
				if(h[i][j]==aa[j]){
					t=t+1;
				}
			}
			if(t==d[i]){
				d[i]=ll2;
				for(j=0;j<ll2;j++){
					h[i][j]=bb[j];
				}
			}
		}
	}
	for(i=0;i<n;i++){
		for(j=0;j<d[i];j++){
			if(j!=d[i]-1){
		printf("%c",h[i][j]);
			}
			else if(j==d[i]-1){
				printf("%c ",h[i][j]);
			}
		}

	}
	for(j=0;j<d[n];j++){
			if(j!=d[n]-1){
		printf("%c",h[n][j]);
			}
			else if(j==d[i]-1){
				printf("%c\n",h[n][j]);
			}
		}
}
/*
 * ????.cpp
 *
 *  Created on: 2010-11-6
 *      Author: X200
 */
int main(){
	char str[10001];                     //????str[]?
	char c1[101],c2[101];                //???????c1,c2?
	int i,j,a,b,c;                       //??????????????
	cin.getline(str,10001);              //?????????
	cin>>c1>>c2;                         //???????c1???????c2??????
	a=strlen(str);                       //???????????
	b=strlen(c1);
	c=strlen(c2);
	for(i=0;i<a;i++){                    //??????????
		if(((str[i-1]==32)&&(str[i+b]==32))           //??????????????????????????
				||((i==0)&&(str[i+b]==32))            
				||(str[i-1]==32)&&(i+b==a)){
		if(str[i]==c1[0]){                            //???????????????c1??????
			for(j=i;j<=i+b-1;j++){                    //???????????c1???
				if(str[j]!=c1[j-i])                   //?????????
					break;
			}
			if(j==(i+b)) {                            //?????
                if(c>b){                              //??c2?c1??
					for(j=a-1;j>=i+b;j--){            //???????????????c-b??
						str[j+c-b]=str[j];
					}
					for(j=i;j<=i+c-1;j++){            //??c1??c2.
						str[j]=c2[j-i];
					}
					a=a+c-b;                          //???????????
					i=i+c-1;                          //??????????????
				}
				else {                                //?????????
					for(j=i+b;j<=a-1;j++){            //???????????????b-c??
						str[j+c-b]=str[j];
					}
					for(j=i;j<=i+c-1;j++){            //??c1??c2?
						str[j]=c2[j-i];
					}
					a=a+c-b;                          //???????????
					i=i+c;                            //??????????????
				}
			    }
			}
		}
	}
	for(i=0;i<a;i++){                                 //?????????
		cout<<str[i];
	}
	return 0;                                         //????? 
}
char chStr[103][101];
int iLen=0;
int main()
{    int i,j=0,k;
    while(cin>>chStr[j]) j++;
        while(chStr[j-1][iLen]) iLen++;
            for(i=0;i<j-2;++i) 
               {    
                            if(!strcmp(chStr[i],chStr[j-2])) 
                                       {                 
                                                            for(k=0;k<101;++k) chStr[i][k]=0;  
                                                     
                                                     
                             for(k=0;k<iLen;++k) chStr[i][k]=chStr[j-1][k];  
                                       } 
                                          } 
                                             for(i=0;i<j-3;++i) 
                                                {          
                                                             cout<<chStr[i]<<" ";
                                                                 }  
                                                                   cout<<chStr[j-3]<<endl; 
                                                                      return 0;}
void main()
{int na,nb,nc,i,j,k,p,num=0;

char a[1000],b[100],c[100];
	gets(a);
	gets(b);
	gets(c);
	na=strlen(a);
nb=strlen(b);
nc=strlen(c);

for(i=0;i<1000;i++)
{for(j=0;j<nb;j++)
if(*(a+i+j)!=*(b+j))
 break;
if((j==nb&&*(a+i+nb)==' '&&*(a+i-1)==' ')||(j==nb&&i==0&&*(a+i+nb)==' ')||(j==nb&&i==na+num*(nc-nb)-nb&&*(a+i-1)==' '))
{num++;
	if(nb>=nc)
	{for(k=0;k<nc;k++)
		*(a+i+k)=*(c+k);
	for(p=0;p<na+num*(nc-nb);p++)
		*(a+i+nc+p)=*(a+i+nb+p);}
if(nb<nc)
{for(p=((nc-nb)*num+na-1);p>i+nb-1;p--)
*(a+p)=*(a+p-(nc-nb));
for(k=0;k<nc;k++)
*(a+i+k)=*(c+k);}
}
}
for(i=0;i<(na+num*(nc-nb));i++)
printf("%c",*(a+i));


}
int main(){
    int n,i,j,k;
    int a;
    int isWords;
   char s1[100];
   char s2[100];
   char s3[100];
    gets(s1);
    gets(s2);
    gets(s3);
    i=0;
    j=0;
    k=0;
    char* p;
    p=strtok(s1,"' '");
                 if(strcmp(p,s2)==0)
               printf("%s",s3);
             else  printf("%s",p);
             p=strtok(NULL,"' '");
    while(p){
             if(strcmp(p,s2)==0)
                printf(" %s",s3);
             else printf(" %s",p);
             p=strtok(NULL,"' '");
             }
 gets(s1);
            return 0;
}
int main()
{
	int len1,len2,len3;          //???????
	char a[100],b[100],c[100];   //????
	gets(a);
	gets(b);
	gets(c);
	len1=strlen(a);
	len2=strlen(b);
	len3=strlen(c);
	int i,j=0,m,n,k,space[100]; //space????????
	space[0]=0;
	for(i=0;i<len1;i++)
		if(a[i]==' ')
		{
			j=j+1;
			space[j]=i+1;       //space[i]??i???+1???
			                    //?????i????
		}
	for(i=0;i<j;i++)                     //???????????
	{
		k=0;
		for(m=space[i];m<space[i]+len2;m++)//?????len2?????
		{
			if(a[m]==b[m-space[i]])
				k=k+1;                   //???k?+1
		}
		if(k==len2&&a[space[i]+len2]==' ')
			//??????????(?youself?you???s,??)**
			cout<<c<<' ';
		else                         //??????
		{
			for(n=space[i];n<space[i+1];n++)
				cout<<a[n];
		}
	}
	k=0;
	for(i=space[j];i<len1;i++)       //????
		if(a[i]==b[i-space[j]])
			k=k+1;
		if(k==len2&&len1-space[j]==len2)//???** 
			cout<<c;
		else
		{
			for(n=space[j];n<len1;n++)
				cout<<a[n];
		}

	return 0;
}