semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void swap(char *str,char *a,char *b)
{
	char *p1=str,*p2=a;
	int len1,len2,len3,n,i=0,j,k,m;
	len1=strlen(str);
	len2=strlen(a);
	len3=strlen(b);
	n=len3-len2;
	while(*p1!='\0')
	{
		if((*p1==*p2)&&(!isalpha(*(p1-1))))
			while((*p1==*p2)&&(*p2!='\0'))
			{p1++,p2++;i++;}
			else {p1++;i++;}
			if((*p2=='\0')&&isalpha(*p1)==0)
			{
				if(n<0)
				{
					j=i-len2;
					for(k=0;k<len3;k++)
						str[j++]=b[k];
					for(m=i;m<len1;m++)
						str[j++]=str[m];
					while(j<len1)
						str[j++]='\0';
					len1=strlen(str);
				}
				else
				{
				
					for(m=len1+n;m>i;m--)
						str[m]=str[len1--];	
					j=i-len2;
					for(k=0;k<len3;k++)
						str[j++]=b[k];
						len1=strlen(str);
				}
			}
			p2=a;
	}
}
void main()
{
   char str[1000],a[200],b[200];
   gets(str);
   gets(a);
   gets(b);
   swap(str,a,b);
   puts(str);
}
int main()
{
    char sen[1000],a[1000],b[1000],end[2000];
	int i,j,lensen,lena,lenb;
    sen[0]=' '; 
	a[0]=' '; 
	b[0]=' ';
    gets(&sen[1]);
    cin>>&a[1]>>&b[1];

    lensen=strlen(sen)+1;
    lena=strlen(a)+1;
    lenb=strlen(b)+1;

    sen[lensen-1]=a[lena-1]=b[lenb-1]=' ';
    sen[lensen]=a[lena]=b[lenb]='\0';

    
    for(i=0,j=0;i<lensen;++i,++j)
    {
        if (strncmp(sen+i,a,lena) == 0)
        {
            strcpy(end+j,b);
            i = i+lena-1;
            j = j+lenb-1;
        }
        else
      {
            end[j] =sen[i];
        }
    }

    end[j-1] = 0;
    cout<<&end[1]<<endl;
    return 0;
}
void main(){
    int i=1,t;
    char a[20][20],(*p)[20],x[20],y[20];
    p=a;
    scanf("%s",p);
    while(getchar()!='\n'){
        scanf("%s",p+i);
        i++;
    }
    scanf("%s%s",x,y);
    for(t=0;t<i;t++){
        if(strcmp(p+t,x)==0)
            printf("%s",y);
        else
            printf("%s",p+t);
        if(t!=i-1)
            printf(" ");
    }
    //printf("%s",p);
}
main()
{
	char str[101],a[101],b[101];
	int i=0,j,t;
	gets(str);
	scanf("%s",a);
	scanf("%s",b);
    do
	{
		j=0;
		t=i;
		while (str[i]==a[j]&&j<strlen(a))
		{
			i++;
			j++;
		}
		if (j==strlen(a)) 
		{
			printf(str[i]=='\0'?"%s":"%s ",b);
			i++;
		}
		else 
		{
			do
			{
			    printf("%c",str[t]);
				t++;
			}
		    while (str[t]!=' '&&str[t]!='\0');
			if (str[t]==' ') printf(" ");
		    i=t+1;
		}
	}
	while (str[i-1]!='\0');
	printf("\n");
	return 0;
}
int main()
{
	int j,i,k,m;
	char s[100],a[20],b[20],z[50][20];
	gets(s);
	gets(a);
	gets(b);
	for(i=0,j=0,k=0;i<100;i++)
	{
		if(s[i]==' ') {z[j][k]='\0';j++;k=0;}
		if(s[i]!=' '&&s[i]!='\0') {z[j][k]=s[i];k++;}
		if(s[i]=='\0') {z[j][k]='\0';m=j;break;}
	}
	for(i=m;i>=0;i--)
	{
		if(strcmp(a,z[i])==0) strcpy(z[i],b);
	}
	for(i=0;i<=m;i++)
	{
		if(i<m)
			printf("%s ",z[i]);
		if(i==m)
			printf("%s",z[i]);
	}
	return 0;
}
int main(){
	char m[100],z[100],t[100];
	gets(m);
	gets(z);
	gets(t);
	char fz[100][100]; //use this to seperate the words
	int len1=strlen(m);
	int i,k=0,j=0,num=1; //use "num" to calculate the number of the words
	for(i=0;i<len1;i++){
		if(m[i]!=32){
			fz[k][j]=m[i];
			j++;
		}
		else{
			num++;
			k++;
			j=0;
		}
	}
	for(k=0;k<num;k++){
		if(k!=num-1){
	        int result=strcmp(fz[k],z);
		    if(result==0){
			    strcpy(fz[k],t);
			    printf("%s ",fz[k]);
			}
		    else{
			    printf("%s ",fz[k]);
			}
		}
		if(k==num-1){
            int result=strcmp(fz[k],z);
		    if(result==0){
			    strcpy(fz[k],t);
			    printf("%s",fz[k]);
			}
		    else{
			    printf("%s",fz[k]);
			}
		}

	}
	return 0;
}
int main()
{
	char s[100];char s1[100];char s2[100];
	
	
	gets(s);
	gets(s1);
	gets(s2);
	char *p2=s;
	while(*p2!='\0')
	{
		int i=0;
		char temp[100];
		for(i=0;i<=99;i++)
		{temp[i]='\0';}
		i=0;
		do
		{
		temp[i]=*p2;
		p2++;
		i++;
		}
		while (*p2!=' '&&*p2!='\0');
		if(strcmp(s1,temp)==0) printf("%s",s2);
		else printf("%s",temp);
		if(*p2==' ') 
		{p2++;printf(" ");}
		
	}
	return 0;
}
int main()
{
	char a[200],b[200],c[200];
	gets(a);
	gets(b);
	gets(c);
	int i,j,l,t,k=0;
	l=(int)strlen(a);
    t=(int)strlen(b);
	for(i=0;i<l;i++)
	{
		for(j=0;j<t;j++)
		{
			if(i+j-1>l)
				break;
			if(a[i+j]==b[j])
				k=k+1;
			if((a[i-1]==' '||i==0)&&k==t&&(a[i+t]==' '||i==l-t))
			{
				printf("%s",c);
				i=i+t;
			}
		}
		if(i>l-1)
			break;
		if((k!=t||(t==k&&(a[i-1]!=' '||i!=0)||a[i+t]!=' '||i!=l-t)))
				printf("%c",a[i]);
		k=0;
	}
	return 0;
}
int main()
{
char s[100];
char a[100];
char b[100];
int i,j,len;
gets(s);
gets(a);
gets(b);
len=strlen(s);
int n=0;
int word=0;
for(i=0;i<len;i++)
{
if(s[i]==' ') 
{
word=0;
}
else if(word==0)
{
word=1;
n++;
}
}
int A=0;
int l=0;
int k;
char x[100];
for(j=0;j<n;j++)
{ 
for(i=A,k=0;i<len;i++,k++) 
{
if(s[i]!=' ')
{
x[k]=s[i];
}
if(s[i]==' ')
{
x[k]='\0';
A=i+1;
break;
}
}
if( i==len ) x[k]='\0';  
if(strcmp(x,a)==0)
{
strcpy(x,b);
}
printf("%s",x);
l++;
if(l!=n)
{
printf(" ");
}
}

return 0;
}
int main()
{
	int i,n,q,j,k,flag=0;
	char a[102],b[102],c[102];
	gets(a);
	gets(b);
	gets(c);
	n=strlen(b);
	q=strlen(c);
	for(i=0;i<strlen(a);i++){
		if((a[i-1]==' ')||((a[i]>='A')&&(a[i]<'a'))){
			for(j=0;j<n;j++)
				if(a[i+j]!=b[j]){
				flag=1;
				break;}
				if(flag==0){
					for(k=0;k<q;k++)
						printf("%c",c[k]);
					i=i+n-1;
				}
			else{
				printf("%c",a[i]);
				flag=0;
			}
		}
			else{
				printf("%c",a[i]);
				flag=0;
			}
	}
	return 0;
}
int main()
{
	char ch[200];
	char result[200];
	char f[200],r[200];

	gets(ch);
	cin >> f >> r;
	
	
	ch[strlen(ch)+1]=0;
	ch[strlen(ch)]=' ';

	memset(result,0,200);
	int last = 0;
	for(int i=0;i<strlen(ch);i++)
	{
		if(ch[i]==' ')
		{
			ch[i]=0;
			char *p =ch+last;
			if(strcmp(p,f)==0)
				sprintf(result,"%s %s",result,r);
			else
				sprintf(result,"%s %s",result,p);
			last = i+1;
			ch[i]=' ';
		}
	}
	cout << result+1 << endl;
	return 0;
}
int main()
{
 int a=0,b=0,c=0,d[10],i=0,j=0,k=0,l=0;
 char s[1000],q[100],w[100];
 gets(s);gets(q);gets(w);//??
 for(j=0;j<100;j++)
 {if(s[j]=='\0'&&a==0)a=j;//"="
  if(q[j]=='\0'&&b==0)b=j;
  if(w[j]=='\0'&&c==0)c=j;
  if(a!=0&&b!=0&&c!=0)break;}
  for(i=0;i<=a;i++)
   if(s[i]==' '||s[i]=='\0')
    for(j=0;j<b;j++)
     if(q[j]!=s[i-b+j])break;
     else if(s[i-b-1]==' '||i==b){d[k++]=i;j=b;}
  if(k!=0)//"||"???break???,"k++"??????
   for(i=0;i<a;i++){if(i==d[l]-b){for(j=0;j<c;j++)printf("%c",w[j]);i=d[l]-1;l++;}else printf("%c",s[i]);}
  else for(i=0;i<a;i++)printf("%c",s[i]);
 return 0;
}
void main()
{
	char a[100],b[100],c[100],d[100],*p,*q,*r;
	int i,j=0,m,e,t;
	gets(a);
	gets(b);
	gets(c);
	for(p=a;p<a+strlen(a);p++)
	{
		if(*p!=*b||(*p==*b&&(*(p+strlen(b))!=' ')&&(*p==*b&&*(p+strlen(b))!='\0'))||((*p==*b&&*(p)!=*a)&&(*p==*b&&*(p-1)!=' ')))
		{d[j]=*p;j++;}
		else if(*p==*b&&((*(p+strlen(b))==' '||*(p+strlen(b))=='\0'))&&(*(p-1)==' '||*p==*a))
		{   q=p;
			m=0;
		for(i=0;i<strlen(b);i++)
		{if(*p!=*(b+i))
		{
			m=1;
			for(r=q;r<=q+i;r++)
			{*(d+j)=*r;j++;}
			break;}
		else p++;}
		if(m==0){p--;for(e=0;e<strlen(c);e++){*(d+j)=*(c+e);j++;}}
		}
	}
	for(t=0;t<j;t++)
		printf("%c",*(d+t));
}
int main()
{
	char s[100][101];
	char a[101],b[101];
	int i,j;
	scanf("%s",s[0]);
	for(i=1;getchar()!='\n';i++)
	{
	scanf("%s",s[i]);
	}
	gets(a);
	gets(b);
	for(j=0;j<i;j++)
	{
		if(strcmp(s[j],a)==0)
			strcpy(s[j],b);
	}
	printf("%s",s[0]);
	for(j=1;j<i;j++)
	{
		printf(" %s",s[j]);
	}
	return 0;
}
int main()
{


   char a[1000];
    char word[100][100];
    char sub[100];
    char w[100];
    int i,n,k; 
    
    
    gets(a);
    gets(w);
    gets(sub);
    
    n=0;k=0;
    for (i=0;a[i]!=0;i++){
        
        if (a[i]==' '){
            a[i]='\0';     
           strcpy(word[n],(a+k));         
           
            k=i+1;
            n++;        
             }
        }
         strcpy(word[n],(a+k));n++;
         
         
         
    
             
                          
         for (i=0;i<n;i++)
         {
             if (strcmp(word[i], w) == 0 ){     
                                                    
                        strcpy(word[i],sub);
                   
                                         
                                         }    
             }
             
             
             for (i=0;i<n-1;i++){
                 
                 printf ("%s ",word[i]);
                 
                 }puts(word[n-1]);
return 0;
}
void main()
{
	char a[100],b[100],c[100],s[100][20]={'\0'};
	gets(a);
	gets(b);
	gets(c);
	int len,i,m=0,n=0;
	len=strlen(a);
	for(i=0;i<len;i++)
	{
		if(a[i]!=' ')
		{
			s[m][n]=a[i];
			n++;
		}
		else
		{
			m++;
			n=0;
		}
	}
	for(i=0;i<m+1;i++)
	{
		if(strcmp(s[i],b)==0)
		{
			strcpy(s[i],c);
		}
	}
	for(i=0;i<m;i++)
	{
		printf("%s ",s[i]);
	}
	printf("%s\n",s[m]);
}
int main(){
	char zfc[100], in[30], out[30], x[100], y[100], zfc2[20][100];
	int len, i, t=1, lenall, judge=1, num[100], k=1;
	gets(zfc);
	scanf("%s", in);
	scanf("%s", out);
	len=strlen(in);
	lenall=strlen(zfc);
	num[0]=0;
	for(i=0;i<lenall;i++){
		if(zfc[i]==' '){
			num[k]=i+1;
			zfc[i]=0;
			k++;
		}
	}
	for(i=0;i<k;i++){
		strcpy(zfc2[i],&zfc[num[i]]);
	}
	for(i=0;i<k;i++){
		if(strcmp(&zfc[num[i]],in)==0){
			strcpy(zfc2[i],out);
		}
	}
	for(i=0;i<k-1;i++){
		printf("%s ", zfc2[i]);
	}
	printf("%s", zfc2[k-1]);
	return 0;
}
void main()
{
	int j,al,bl,cl;
	char c[1000]={""},a[100]={""},b[100]={""};
	char *p,*q;
	gets(c);
	gets(a);
	gets(b);
	al=strlen(a);
	bl=strlen(b);
	cl=strlen(c);
	for(p=c;p<c+cl;)
	{
		q=p;
		for(;*q!=' '&&*q!='\0';q++)
			;
		if((q-p)!=al)
		{
			for(;p<q;p++)
				printf("%c",*p);
			if(q!=c+cl)
				printf(" "),p++;
		}
		else
		{
			for(j=0,q=p;j<al;q++,j++)
				if(*q!=a[j])
					break;
			if(j==al)
			{
				if(q!=c+cl)
					printf("%s ",b);
				else
					printf("%s",b);
				p=p+al+1;
			}
			else
				for(;p<=q;p++)
					printf("%c",*p);
		}
	}
}
main()
{
      int x,y,z,i,j,k=0,c,flag=0;
      char s[200],a[100],b[100],temp[300];
      gets(s);gets(a);gets(b);
      x=strlen(s);y=strlen(a);z=strlen(b);
      
      for(i=0;i<x+y;)
      {
          if(flag==0)
          {  
             c=1;          
             if(s[i]==' ') flag=0;
             else flag=1;
          
             for(j=0;j<y;j++)
                 if(a[j]!=s[i+j])
                     c*=0;
          
             if(c!=1)
             {
                 temp[k]=s[i];
                 i++;
                 k++;
             }
             else
             {
                 for(j=0;j<z;j++,k++)
                     temp[k]=b[j];
                 i+=y;
             }
        
          }
          else
          {
              
              if(s[i]==' ') flag=0;
              else flag=1;
              temp[k]=s[i];
              k++;
              i++;
          }
      }
      for(i=0;i<k-y;i++)
          printf("%c",temp[i]);
}
int main()
{
	char s[100];//????????
	int i=0,count=0,j=0;
	char str[100][100];//???????????????
	char word1[100],word2[100];//?????????????
	cin.getline(s,100,'\n');
	for(i=0;i<100;i++)//???????????????????
	{
		if(s[i]!=' ')
		{
			str[count][j]=s[i];
			j++;
		}
		else if(s[i]==' ')
		{
			str[count][j+1]='\0';
			count++;
			j=0;
			continue;
		}
		else if(s[i]=='\0')
			break;
	}
	cin.getline(word1,100,'\n');
	cin.getline(word2,100,'\n');
	for(i=0;i<=count;i++)//????????????????????????
	{
		if(strcmp(str[i],word1)==0)
			strcpy(str[i],word2);
	}
	cout<<str[0];
	for(i=1;i<=count;i++)
		cout<<' '<<str[i];
	return 0;
}
int main()
{
    char a[100],b[100],c[100],d[100];
    int i,j,k;
    gets(a);
    gets(b);
    gets(c);
    k=strlen(a);
	for(i=0;i<k;i++)
    {
        j=0;
        while(a[i]!=' '&& a[i]!='\0')
        d[j++]=a[i++];
        d[j]='\0';
        if(strcmp(b,d)==0)
		{
			printf("%s",c);
		}
        else
        {
			printf("%s",d);
        }
		if(i==k)
		{
			printf("\0");
		}
		else 
		{
			printf(" ");
		}
	}
	return 0;
}
int main()
{
	char c[120];
	char r[104],f[104];
	int i,j,k;
	int nc,nr,nf;
	gets(c);
	nc=strlen(c);
	gets(r);
	nr=strlen(r);
	gets(f);
	nf=strlen(f);
	i=0;
	while(i<nc)
	{
		while((i<nc)&&(c[i]==' '))
		{
			printf("%c",c[i]);
			i++;
		}
		j=i;
		while((j<nc)&&(c[j]!=' '))
		{
			j++;
		}
		k=0;
		while((i+k<nc)&&(k<nr)&&(c[i+k]==r[k]))
		{
			k++;
		}
		if((k==nr)&&(i+k==j))
		{
			printf("%s",f);
		}
		else
		{
			for(k=i;k<j;k++)
			{
				printf("%c",c[k]);
			}
		}
		i=j;
	}
	
	return 0;
}
int main ()
{
char s[100][100] = {0};//??????s
int sum = 0;//?????sum??0????
while (true)
{
cin >> s[sum];//??s
sum ++;
if ( cin.get() == '\n' ) break;//???????????
}
char a[100] = {0};//????????
char b[100] = {0};//????????
cin >> a >> b;
for ( int i = 0; i < sum; i ++ )
for ( int j = 0; j < 100; j ++ )
{
if ( s[i][j] != a[j] ) break;//????s?????a?????
if ( j == 99 ) strcpy(s[i],b);//????????b
}
for ( int l = 0; l < sum - 1; l ++ )//??????s
cout << s[l] << " ";
cout << s[sum-1];
return 0;
}
int main(int argc, char* argv[])
{
    char s[100];
	gets(s);
	int p=strlen(s);
	char a[10],b[10];
	gets(a);gets(b);
	int q=strlen(a),l=strlen(b);
	int i,j,k=0,t;
	if(a[0]==s[0]){
		for(i=1;i<q;i++){
			if(a[i]!=s[i]){
				k=1;
				break;
			}
		}
	    if(k==0){
		   if(q>l){
		      for(i=0;i<l;i++) s[i]=b[i];
		      for(i=l;i<p-l;i++) s[i]=s[i+q-1];
		   }
		   if(q<l){
			  for(i=p+l-q;i>0;i--) s[i+l-q]=s[i];
			  for(i=0;i<l;i++) s[i]=b[i];
		   }
		}
	}
	for(i=0;i<p-1;i++){
		if(s[i]==' '){
			if(s[i+1]==a[0]){
				for(j=i+1,t=0;j<i+1+q;j++,t++){
			       if(a[t]!=s[j]){
				      k=1;
				      break;
				   }
				}
	            if(k==0){
		           if(q>l){
		              for(j=i+1,t=0;j<i+1+l;j++,t++) s[j]=b[t];
		              for(j=i+1+l;j<p-l;j++) s[j]=s[j+q-1];
				   }
		           if(q<l){
			          for(j=p+l-q;j>i+1;j--) s[j+l-q]=s[j];
			          for(j=i+1,t=0;j<i+1+l;j++,t++) s[j]=b[t];
				   }
				}
			}
		}
	}
	printf("%s\n",s);
    return 0;
}
int main()
{
	char a[200],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(a[i]==b[0]&&a[i-1]==' '&&a[i+lenb]==' '||i==0&&a[i+lenb]==' '||i==lena-lenb&&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+=lenb;
				lena-=lenb-lenc;
			}
	    	else     //????????
			{
		    	for(k=lena-1+lenc-lenb;k>=i+lenb;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;                   
				lena+=lenc-lenb;              //??????
			}
		}
	}
	cout<<a<<endl;
	return 0;
}
int main()
{
   char str[1024];
   char src[1024];
   char tar[1024];
   char tmp[1024];
   gets( str );
   gets( src );
   gets( tar );

   int cnt = 0;

   if( str[0] == ' ' )  
       putchar(str[0]);
   else
       tmp[cnt++] = str[0];

   for(int i = 1; str[i]; i++ ) {

       if( str[i-1] == ' ' && str[i] != ' ' ) {
           tmp[cnt++] = str[i];

       } else if (str[i] == ' ') {
           if( cnt > 0 ) {
               tmp[cnt] = 0;
               if( !strcmp(tmp, src) )
                   printf("%s", tar );
               else printf("%s", tmp );
               cnt = 0;
           }
         
           putchar(' ');
       } else tmp[cnt++] = str[i];
   }
   if( cnt > 0 ) {
         tmp[cnt] = 0;
         if( !strcmp(tmp, src) )
                   printf("%s", tar );
               else printf("%s", tmp );
   }
   putchar('\n');
}
void main()
{
	char s[100],a[100],b[100];
	char t[50][100];
	int s1,n,i,j,m;
	gets(s);
	gets(a);
	gets(b);
	s1=strlen(s);
	for(i=0,n=1;i<s1;i++)
		if(s[i]==' ')n++;
	for(i=0,m=0;i<n;i++)
	{
		for(j=0;;j++)
		{
			if(s[m+j]==' ')
			{
				t[i][j]='\0';m=m+j+1;break;
			}
			else
				t[i][j]=s[m+j];
		}
	}
	for(i=0;i<n;i++)
		if(strcmp(t[i],a)==0)
			strcpy(t[i],b);
		else strcpy(t[i],t[i]);
	for(i=0;i<n-1;i++)
		printf("%s ",t[i]);
	printf("%s\n",t[n-1]);
}
int main()
{
char juzi[100];
char danci[200][200],ci1[200],ci2[200];
int i=0,j=0,k=0,f,index;
gets(juzi);
gets(ci1);
gets(ci2);
    index=0;
	for(i=0;;i++){
		for(k=0;;){
			if(juzi[index]!=' '&&juzi[index]!=0)
{
				danci[i][k]=juzi[index];
				index++;
				k++;
			}
else
{
				danci[i][k]=0;
				index++;
				k++;
				break;
			}
}
                         if(juzi[index-1]==0)
                           {
			break;
}
                       }
	for(f=0;f<100;f++)
	{
		if(strcmp(danci[f],ci1)==0)
		{
			strcpy(danci[f],ci2);
		}
	}
for(j=0;j<=i;j++)
{
if(j==i)
{
printf("%s",danci[j]);
}
else
{
printf("%s ",danci[j]);
}
		}
return 0;
}
int main() 
{
  char s[100],a[100],b[100];
  char zfc[100][100];
  int i,j,len,k=1,wz[100];
  gets(s);
  scanf("%s%s",a,b);
  len= strlen(s);
  wz[0]=0-1;
  for ( i = 0; i<len; i++ ){
	  if (s[i]==' ' ){
		  wz[k]=i;
		  k++;
	  }
  }
  wz[k]=len;
  for(i=0;i<k;i++){
	  for(j=wz[i]+1;j<wz[i+1];j++)
	  zfc[i][j-wz[i]-1]=s[j];
	  zfc[i][j-wz[i]-1]='\0';
  }
  if(strcmp(zfc[0],a)!=0){
		  printf("%s",zfc[0]);
	  
	  }else{
		  printf("%s",b);
	  }			 
   
  for(i=1;i<k;i++){
	  if(strcmp(zfc[i],a)!=0){
		  printf(" %s",zfc[i]);
	  
	  }else{
		  printf(" %s",b);
	  }	
  }

		 
  
 
  
  return 0;
}
void main()
{
	char s[100],a[100],b[100],c[100][50];
	char *p1=s,*p3=b;
	int i=0,j=0,n;
	gets(s);   gets(a);  gets(b);
    for( ;*p1!='\0';p1++)
	{
		if(*p1!=' ')
		{
			c[i][j]=*p1;//?????????????????
			j++;
		}
		else 
		{  
			c[i][j]='\0';
			i++;
			j = 0;//?????0?????c[i][0].
		}
		
	}
	c[i][j]='\0';//??????????????'\0'???????????? ?????c[i]?
    n=i;
	for(i=0;i<=n;i++)
	{
		if(strcmp(c[i],a)==0)
		{
			for(j=0;*p3!='\0';p3++,j++)
			c[i][j]=*p3;
		    c[i][j]='\0';
		}
		p3=b;//????c[i]?a.
	}
	for(i=0;i<n;i++)
	{
		printf("%s ",c[i]);
	}
		printf("%s",c[i]); //????????? ?????????
}
int main()
{
	char *s,*a,*b,*p;
	s=(char *)malloc(100);
	a=(char *)malloc(20);
	b=(char *)malloc(20);
	gets(s);
	gets(a);
	gets(b);
	p=s;
	int i;
	while(*s!='\0')
	{
		if(*s!=' ')
			s=s+1;
		else if(*s==' ')
		{
			*s='\0';
			s=s+1;
			if(strcmp(p,a)==0) 
		    	printf("%s ",b);
	    	else printf("%s ",p);
	    	p=s;
		}
	}
	if(strcmp(p,a)==0) printf("%s",b);
	else printf("%s",p);
return 0;
}
int main()
{
	char s[101],a[101],b[101],x[101]={0};
	int i,j,n,m;
	gets(s);
	gets(a);
	gets(b);
	n=strlen(a);
	m=strlen(b);
	for(i=0;s[i]!='\0';i++)
	{
		if((s[i]==a[0]&&s[i-1]==' ')||s[0]==a[0])
		{
			for(j=0;j<n;j++)
				if(s[i+j]!=a[j]) break;
				if(n==j) x[i]=1;
		}
	}
	for(i=0;s[i]!='\0';i++)
	{
		if(x[i]==0) printf("%c",s[i]);
		else if(x[i]==1)
		{
			for(j=0;j<m;j++) printf("%c",b[j]);
			i+=n-1;
		}
	}
	printf("\n");
	return 0;
}
int main(){
 char c='0';
 char *s[100];
 char t[100],r[100];
 int i=0,j;
 while(c!='\n'){
                s[i]=(char*)malloc(sizeof(char)*100);
                scanf("%s",s[i++]);
                scanf("%c",&c);                
 }
 scanf("%s",t);
 scanf("%s",r);
 for(j=0;j<i;j++){
  if(strcmp(t,s[j])==0)
   s[j]=r;
  printf("%s",s[j]);  
  if(j<i-1)
   printf(" ");
 }
return 0;
}
int main()
{
	char a[103],word[103],rep[103],b[203],i,j;     //?????a??????word??????rep??????b
	cin.get(a,101,'\n');							//????????
	cin>>word>>rep;
	int wordlen=strlen(word),
		alen=strlen(a),
		replen=strlen(rep);							//??????????
	for(i=alen;i>0;i--)
		a[i]=a[i-1];
	a[0]=' ';
	a[alen+1]=' ';
	a[alen+2]='\0';
	for(i=1,j=0;i<alen+2;i++,j++)
	{
		if(a[i-1]==' '&&a[i+wordlen]==' '&&strncmp(a+i,word,wordlen)==0)         //????????????i???????????????????????
		{
			strcpy(b+j,rep);
			i=i+wordlen-1;
			j=j+replen-1;                        //????????????????????????????
		}
		else
			b[j]=a[i];
	}
	b[j-1]='\0';                                 //??????????
	for(i=0;;i++)
		if(b[i]!='\0')
			cout<<b[i];
		else
			break;
	return 0;
}
/* Note:Your choice is C IDE */
main()
{
   char s[300],a[300],b[300];
   int x,y,z,i,k;
   gets(s);
   gets(a);
   gets(b);
   x=strlen(s);
   y=strlen(a);
   z=strlen(b);
   for(k=0;k<=x-1;k++)
   {
   	 int q=1;
     for(i=k;q!=9&&i<=k+y-1;i++)
     {
   	   if(s[i]!=a[i-k])
   	   q=9;
     }
     if(q==9) continue;
     else if(q==1&&((s[k-1]==' '&&k>0)||k==0))
     {
     	if(y>=z)
     	{
     	  for(i=k;i<=k+z-1;i++)
     	  s[i]=b[i-k];
     	  for(i=k+z;i<=299;i++)
     	  s[i]=s[i+y-z];
     	}
     	else if(y<z)
     	{
     	  for(i=299;i>=k+z;i--)
     	  s[i]=s[i+y-z];
     	  for(i=k;i<=k+z-1;i++)
     	  s[i]=b[i-k];
     	}
     } 
     k+=z-1;
   }
   printf("%s",s);
}
void main()
{
	char s[150],a[100],b[100],*p,*q;
	gets(s);
	gets(a);
	gets(b);
	q=s;
	while(strstr(q,a)!=NULL)
	{p=strstr(q,a);
	*p='\0';
	if((*(p-1)!=' ')&&((p-1)>s)||(*(p+strlen(a))!=' ')&&(p+strlen(a)<s+strlen(s)))
		printf("%s%s",q,a);
	else
		printf("%s%s",q,b);
	p+=strlen(a);
	q=p;
	}
	printf("%s",q);
}
int main()
{
	char s[1000],a[1000],b[1000],c[1000][1000]={0};
	int i,j,k=0,e,d,h,n=0,d1;
	gets(s);
	gets(a);
	gets(b);
	d=strlen(s);
	for(i=k;i<d;i++)
	{
		h=0;
		if(s[i]!=' '&&(s[i+1]==' '||s[i+1]=='\0'))
		{
			for(j=k;j<=i;j++)
			{
				c[n][h++]=s[j];
				
			}
			c[n][h]='\0';
			n+=1;
			k=i+2;
		}
	}
	e=0;
	for(i=0;i<n;i++)
	{
		if(strcmp(a,c[i])==0)
		{
			strcpy(c[i],b);
			e=1;
		}
	}
	if(e==0)
	{
		printf("%s\n",s);
	}
	else
	{
		for(i=0;i<n-1;i++)
		{
			d1=strlen(c[i]);
			for(j=0;j<d1;j++)
			{
				printf("%c",c[i][j]);
			}
				printf("%c",' ');
		}
		printf("%s\n",c[n-1]);
	}
	return 0;
}
int main() 
{ 
	char string[4000]; 
	char a[100],b[100];
	char str[40][100]; 
	char temp[100]=""; 
	int k=0,j=0,i,n,m; 
	gets(string); 
	n=strlen(string); 
	for (i=0;i<n;i++) 
	{ 
		if ( string[i]!=' ') 
		{ 
			temp[k]=string[i]; 
			str[j][k]=string[i]; 
			k++; 
		} 
		else 
		{ 
			strcpy(str[j],temp); 
			k=0;
			j++; 
			for(m=0;m<100;m++)temp[m]=0; 

		} 
		if(i==n-1)
		{ 
		strcpy(str[j],temp); 
		for(m=0;m<100;m++)temp[m]=0;  
		}
	}
	gets(a);
	gets(b);
	for(i=0;i<=j;i++)
	{
		if(strcmp(str[i],a)==0)
		{
			strcpy(str[i],b);
		}
	}
	for(i=0;i<j;i++)printf("%s ",str[i]);
	printf("%s",str[j]);
	return 0;
}
int main(int argc, char* argv[])
{
	char s[210]={'\0'},a[100],b[100];
	int i,j,x=0,k=0,q,l=0,d,p,m,dd,sl;
	gets(s);
	gets(a);
	gets(b);
    sl=strlen(s);
	l=strlen(a);
	d=strlen(a)-strlen(b);
	for(i=0;s[i]!='\0';i++)
	{   
		x=0;
		for(k=0;a[k]!='\0';k++)
		{
			if(s[i+x]==a[k])
			{
			     x++;
			}
			else
				break;
		}
		if(l==x&&(s[i-1]==' '||i==0)&&(s[i+x]==' '||s[i+x]=='\0'))
		{
			
			if(d>=0)
			{
				for(q=i+x;s[q]!='\0';q++)
				{
					s[q-d]=s[q];
				}
				for(m=0;m<d;m++)
				{
					s[q-d+m]='\0';
				}
			}
			else if(d<0)
			{
				dd=-d;
				for(q=sl-1;q>=i+x;q--)     /*?????????s[q]!='\0'???
					                            ???????'\0'???       */
				{
					s[q+dd]=s[q];	
				}
				sl=sl+dd;
			}
			p=i;
			for(j=0;b[j]!='\0';j++)
			{
				s[p]=b[j];
				p++;
			}
		}
		
	}
	puts(s);
	return 0;
}
int main()
{
char d[256];
char words[50][256]={0};
char a[100],b[100];
int n=1,t;
int i,j,k=-1;
gets(d);
gets(a);
gets(b);
for (i=0;d[i]!='\0';i++)
{
if (d[i]==' ')
{ 
n++;
}
}
for (i=0,t=1;i<n;i++)
{
for (k=k+1,j=0;d[k]!='\0'&&d[k]!=' ';j++,k++)
{
words[i][j]=d[k];
if (a[j]!=d[k])
{
t=0;
}
}
if (t==1&&strlen (a)==strlen (words[i]))
{
for (j=0;b[j]!='\0';j++)
{
words[i][j]=b[j];
}
}
words[i][j]='\0';
t=1;
}
printf ("%s",words[0]);
for (i=1;i<n;i++)
printf (" %s",words[i]);
return 0;
}
int main(int argc, char* argv[])
{
	char a[200],b[100],c[100],d[200];
	int i,j;
	int n1=0,n2=0,n3=0;
	int m=0,flat=0,x=0;
	gets(a);
	gets(b);
	gets(c);
	for (i=0;a[i]!='\0';i++)
	
		n1++;
	for (i=0;b[i]!='\0';i++)
		n2++;
	for (i=0;c[i]!='\0';i++)
		n3++;	
	for (i=0;i<=n1+x*(n3-n2)-1;i++)
	{
		if (a[i]==b[0])
		{
			flat=1;
			for (j=1;j<=n2-1;j++)
			{
				if (a[i+j]!=b[j])
					break;
				else flat=flat+1;
			}
			if(((flat==n2)&&(a[i-1]==' ')&&(a[i+n2]==' '))||((i==0)&&(flat==n2)&&(a[i+n2]==' '))||((flat==n2)&&(i>=n1+x*(n3-n2)-n2-1)&&(a[i-1]==' ')))
			{
				for (m=i+n2;m<=n1+2;m++)
				{
					d[m-i-n2]=a[m];
				}
				for (m=i;m<=i+n3-1;m++)
				{
					a[m]=c[m-i];
				}
				for (m=i+n3;m<=n1+n3-n2+2;m++)
				{
					a[m]=d[m-i-n3];
				}
				i=i+n3-n2;
				x=x+1;
			}
		}
	}
	a[n1+x*(n3-n2)]='\0';
	printf("%s\n",a);
	return 0;
}