semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char s[1000],a[1000],b[1000];
	char *p1,*p2,*p3,*q1,*q,*q2;
	int S,A,i,j;

	gets(s);
	gets(a);
	gets(b);
	S=strlen(s);
	A=strlen(a);
	
	q=p1=s;
	q2=p2=a;
	p3=b;

	for(i=0;i<S;i++,p1++)
		if(*p1==*p2&&(*(p1-1)==' '||p1==s))
		{q1=p1;
		 for(j=0;j<A;j++,p2++,p1++)
		   if(*p1!=*p2)
		   break;
		  else if(j==A-1&&(*(p1+1)==' '||*(p1+1)=='\0'))
		  { for(;q<q1;q++)
			  printf("%c",*q);
		  printf("%s",p3);
		  q=p1+1;
		  }
		  p2=q2;
		}
		else if(i==S-1)
		printf("%s",q);
		
	
}
void main()
{
	char s[100],a[100],b[100],w[20][20];
	int n,t,i,j,m[100];
	gets(s);
	gets(a);
	gets(b);
	n=strlen(s);
	m[0]=-1;
	t=1;
	for(i=0;i<n;i++){
		if(s[i]==' '){
			m[t]=i;
			t+=1;
		}
	}
	m[t]=n;
	for(i=0;i<t;i++){
		for(j=m[i]+1;j<m[i+1];j++){
			w[i][j-m[i]-1]=s[j];
		}
		w[i][m[i+1]-m[i]-1]='\0';
	}
	for(i=0;i<t;i++){
		if(strcmp(w[i],a)==0){
			strcpy(w[i],b);
		}
	}
	printf("%s",w[0]);
	for(i=1;i<t;i++){
		printf(" %s",w[i]);
	}
}
void main()
{
	char s[100],a[100],b[100];
	char word[50][100];
	int i,j,num=1;
	int count[50]={0};
	gets(s);
	gets(a);
	gets(b);
	for(i=0;i<=strlen(s);i++)
	{
		if(s[i]!=' '&&s[i]!='\0')
			count[num]++;
		if(s[i]==' '||s[i]=='\0')
		{
		    for(j=0;j<count[num];j++)
			{
				word[num][j]=s[i-count[num]+j];
			}
			word[num][count[num]]='\0';

			if(s[i]==' ')
				num++;
		}
	}
	for(i=1;i<=num;i++)
	{
		if(strcmp(word[i],a)==0)
			strcpy(word[i],b);
		else
			continue;
	}
	for(i=1;i<num;i++)
	{
		printf("%s ",word[i]);
	}
	printf("%s",word[num]);
}
/************************/
/*       ????       */
/*    ??? pyyaoer    */
/*   ??  2011.11.18   */
/************************/
int main()
{
	int la,lb,i,j,count=1;
	char a[1000],b[100],c[100];
	cin.getline(a,1000); la=strlen(a);
	cin.getline(b,100); lb=strlen(b);
	cin.getline(c,100);
	do
	{
		for (i=count-1;i<=la-1;i++)
		{
			if (a[i]!=b[0]||i>=1&&a[i-1]!=' ')         //??????????????????????
			{
				cout<<a[i];
				count++;
			}
		    else
			    break;
		}
		if (a[i]==b[0]&&(i>=1&&a[i-1]==' '||i==0))     //???????????????
		{
	        for (j=0;j<=lb-1;j++)
			    if (a[i+j]!=b[j])
				    break;
		    count=count+j+1;
		    if (j==lb&&((i+j)<la&&a[i+j]==' ')) //????????
			    cout<<c<<" ";
			else if (i+j==la)
				cout<<c;
		    else
			    for (j=i;j<=count-2;j++)                 //???????
				    cout<<a[j];
		}
	}
	while(count<la);                                    //??????????????
	cout<<endl;
	return 0;
}
void main()
{
	char *s,*p1,*p2,*temp,*a,*b;
	int i,j,t,n,len;
	s=(char *)malloc(sizeof(char)*1000);
	a=(char *)malloc(sizeof(char)*101);
	b=(char *)malloc(sizeof(char)*101);
	gets(s);
    len=strlen(s);
	p1=p2=s;
	*(s+len)=' ';
	*(s+len+1)='\0';
	gets(a);
	gets(b);
	for(;*p1;p1++)
	{
		if(*p1==' '||*p1=='\0')
		{   len=p1-p2;
			temp=(char *)malloc(sizeof(char)*101);
			for(i=0;i<len;i++)
				*(temp+i)=*(p2+i);
			*(temp+len)='\0';
			p2=p1+1;
			if(strcmp(temp,a)==0)*p2=='\0'?printf("%s",b):printf("%s ",b);
			else *p2=='\0'?printf("%s",temp):printf("%s ",temp);
            free(temp);
		}
	}
}
main(){
	char a[101],b[101],c[101];
	char a1[101],a2[101];
	int i,k,l;
	int la,lb,lc;
	cin.getline(a,101);
	cin.getline(b,101);
	cin.getline(c,101);


	lb=strlen(b);
	lc=strlen(c);

	l=0;
    a[-1]=' ';
	for(;;){                   //??????????
    la=strlen(a);
	i=0;

	for (k=l;k<=la-1;k++)       //??????????
     if (a[k]==b[i]){
    	 i++;
    	 if (i==lb && (a[k+1]==' '||a[k+1]=='\0')&& (a[k-lb]==' ')) break;
    	 }
     else  i=0;

    if (k==la) break;

	a1[0]='\0';
	for (i=0;i<=k-lb;i++)         //??
	a1[i]=a[i];
    a1[k-lb+1]='\0';

    a2[0]='\0';
    for (i=0;i<=la-k-2;i++)
	a2[i]=a[k+1+i];
	a2[la-k-1]='\0';

	strcat(a1,c);                 //??
	strcat(a1,a2);
	strcpy(a,a1);


	l=k-lb+1+lc;
	}
	cout<<a<<endl;
    return 0;
}
int main()
{
	char str[101];
	char word[51][20];
	char word1[20],word2[20];

	gets(str);
	cin>>word1>>word2;
	int point,i,counter;
	counter=1;i=0;
	for (point=0;str[point]!='\0';point++)
	{
		if (str[point]==' ')
		{
			word[counter][i]='\0';
			counter++;i=0;
		}
		else
		{
			word[counter][i]=str[point];
			i++;
		}
	}
	word[counter][i]='\0';

	int k;
	for (k=1;k<=counter;k++)
	{
		int flag=0;
		for (i=0;word1[i]!='\0';i++)
		{
			if (word[k][i]!=word1[i]) flag=1;
		}
		if (flag==0) cout<<word2;
		else cout<<word[k];
		if (k!=counter) cout<<' ';
	}
	return 0;
}
void main()
{   int i,r=1,j;
	char a[100],b[100],c[200];
	gets(c);
	gets(a);
	gets(b);
    for(i=0;i<100;i++)
	{
		if(c[i]=='G'&&c[i+1]=='I'&&c[i+2]=='S'&&c[i-1]==' ')
		{
			for(j=100+r*3;j>=(i+3);j--)
				c[j]=c[j-3];
			r=r+1;
			c[i]='W';
			c[i+1]='e';
            c[i+2]='b';
            
        }
		if(c[i]=='Y'&&c[i+1]=='o'&&c[i+2]=='u')
		{
			
			c[i]='I';
			for(j=i+1;j<100;j++)
				c[j]=c[j+2];
	
            
        }
		if(c[i]=='o'&&c[i+1]=='f'&&c[i-1]==' ')
		{
			for(j=100+r*1;j>=(i+1);j--)
				c[j]=c[j-1];
			r=r+1;
			c[i]='f';
			c[i+1]='o';
            c[i+2]='r';
            
        }

	}
	printf("%s",c);
}
int main()
{
	char s1[100]={'\0'},s2[100]={'\0'},a[100]={'\0'},b[100]={'\0'};
	gets(s1);
	gets(a);
	gets(b);
	int i,j,k,t=0,lena=strlen(a),lenb=strlen(b),n=strlen(s1);
	for(i=0;i<n-lena+1;i++)
	{
		if(i>0 && s1[i-1]!=' ')
		{
			s2[t]=s1[i];
			t+=1;
			continue;
		}
		for(j=0;j<lena;j++)
		{
			if(s1[i+j]!=a[j])
				break;
		}
		if(i+j==n || j==lena && s1[i+j]==' ')
		{
			for(k=0;k<lenb;k++)
				s2[t+k]=b[k];
			t+=lenb;
			i+=lena-1;
		}
		else
		{
			s2[t]=s1[i];
			t+=1;
		}
	}
	if(i==n-lena+1)
	{
		for(k=0;k<lena-1;k++)
			s2[t+k]=s1[i+k];
	}
	puts(s2);
	return 0;
}
void main()
{
	char s[300],a[103],b[103];
	int i,j,k,p,l,m,n,num,h=0;
	gets(s);l=strlen(s);
	gets(a);m=strlen(a);
	gets(b);n=strlen(b);
	
	for(i=0;i<l;i++)
	{
		num=0;
		if(s[i]==a[0])
		{
			num=1;
			for(j=1;a[j]!='\0';j++)
				if(s[i+j]==a[j])
					num++;
			if(num==m && (s[i+j]==' ' || s[i+j]=='\0') && n>=m)
			{
				if(i==0 ||( i!=0 && s[i-1]==' '))
				{
				for(k=0;k<(l-m-i);k++)
					s[l-1+n-m-k]=s[l-1-k];
				for(p=0;p<n;p++)
					s[p+i]=b[p];
				s[l+n-m]='\0';
				i=i+n-1;}
			}
			else if(num==m && (s[i+j]==' ' || s[i+j]=='\0') && n<m)
			{
				if(i==0 ||( i!=0 && s[i-1]==' '))
				{
				for(k=0;k<(l-m-i);k++)
					s[n+i+k]=s[m+i+k];
				for(p=0;p<n;p++)
					s[p+i]=b[p];
				s[l+n-m]='\0';
				i=i+n-1;}
			}l=l+i;

		}

	}
	printf("%s",s);
}
main()
{
	char str1[100],str2[100],str3[100];
	char *p1,*p2,*p3,*p[100];
	int i=0,j;
	gets(str1);
	gets(str2);
	gets(str3);
	p1=str1;
	p2=str2;
	p3=str3;
	p[0]=str1;
	for(;*p1!='\0';p1++)
	{
		
		if(*p1==' ')
		{ i++;*p1='\0';
		p[i]=p1+1;
		}
	}

	for(j=0;j<=i;j++)
	{
		if(strcmp(p[j],p2)==0)
			p[j]=p3;
	}

	for(j=0;j<i;j++)
	{
		printf("%s ",p[j]);
	}
	printf("%s",p[i]);
	
}
int main()
{
    char s[100],a[100],b[100],t[100];
    int i,j;
    gets(s);
    gets(a);
	gets(b);
    for(i=0;i<strlen(s);i++)
    {
        j=0;
        while(s[i]!=' '&&s[i]!='\0')
			t[j++]=s[i++];
			t[j]='\0';
        if(strcmp(a,t)==0)
		{
			printf("%s",b);

		}
        else
        {
			printf("%s",t);
        }
 		if(i==strlen(s))
		{
			printf("\0");
		}
		else printf(" ");
	}
        return 0;
}
int main(){
	char a[100],s[100],ex[100],b[100];
	int i,j,k,l,m=0,n,flag,len,D[100],A=0;
	gets(s);
	gets(a);
	gets(b);
	len=strlen(a);
	for(i=0;i<100;i++)
	{
		D[i]=0;
	}
	for(i=0;s[i]!='\0';i++)
	{
		flag=1;
		if ((i!=0&&s[i]==a[0]&&s[i-1]==' '&&(s[i+len]==' '||s[i+len]=='\0'))||(i==0&&s[i]==a[0]&&s[i+len]==' '))
		{
			k=i;
			for (j=i;j<i+len;j++)
			{
				ex[j-i]=s[k];
				k++;
			}
    		for (j=0;j<len;j++)
			{
    			if (ex[j]!=a[j])
    				flag=0;
			}
		}
        else
			flag=0;
		if (flag)
		{
			D[m]=i;
			m++;
//			printf("%d %d %d\n",m,D[m-1],i);
		}
	}
    if (m==1)
	{
    	for(i=0;i<D[0];i++)
		{
	    	printf("%c",s[i]);
		}
        for(i=0;b[i]!='\0';i++)
		{
		    printf("%c",b[i]);
		}
		for(i=D[0]+len;s[i]!='\0';i++)
		{
		    printf("%c",s[i]);
		}
	}
    else if (m>1) 
	{
    	for(i=0;i<D[0];i++)
		{
	    	printf("%c",s[i]);
		}
    	for(n=0;n<m;n++)
		{
		    for(i=0;b[i]!='\0';i++)
			{
		        printf("%c",b[i]);
			}
	    	for(i=D[n]+len;i<D[n+1];i++)
			{
			    printf("%c",s[i]);
			}
		}
    	for(i=D[m-1]+len;s[i]!='\0';i++)
		{
		    printf("%c",s[i]);
		}
	}
    else
		for(l=0;s[l]!='\0';l++)
		{
			printf("%c",s[l]);
		}
	printf("\n");
	return 0;
}
int main(){
	char a[200],b[100],c[100],d[200];
	int i,j,na=0,nb=0,nc=0,m=0,l=0,x=0;
	gets(a);
	gets(b);
	gets(c);
	for (i=0;a[i]!='\0';i++){
		na++;
	}
	for (i=0;b[i]!='\0';i++){
		nb++;
	}
	for (i=0;c[i]!='\0';i++){
		nc++;
	}	
	for (i=0;i<=na+x*(nc-nb)-1;i++){
		if (a[i]==b[0]){
			l=1;
			for (j=1;j<=nb-1;j++){
				if (a[i+j]!=b[j])
					break;
				else l=l+1;
			}
			if (((l==nb)&&(a[i-1]==' ')&&(a[i+nb]==' '))||((i==0)&&(l==nb)&&(a[i+nb]==' '))||((l==nb)&&(i>=na+x*(nc-nb)-nb-1)&&(a[i-1]==' '))){
				for (m=i+nb;m<=na+2;m++){
					d[m-i-nb]=a[m];
				}
				for (m=i;m<=i+nc-1;m++){
					a[m]=c[m-i];
				}
				for (m=i+nc;m<=na+nc-nb+2;m++){
					a[m]=d[m-i-nc];
				}
				i=i+nc-nb;
				x=x+1;
			}
		}
	}
	a[na+x*(nc-nb)]='\0';
	printf("%s",a);
	return 0;
}
int main()
{
	char *p,*max,*min;
	char s[110],a[110],b[110];
	int l=0;
	gets(s);
	scanf("%s%s",a,b);
	p=strtok(s," ");
	
	while(p)
	{
		if (l!=0)
			printf(" ");
		if (strcmp(p,a)==0)
			p=b;
		printf("%s",p);
		p=strtok(NULL," ");
		l++;
	}
	printf("\n");


	
	return 0;
}
int main()
{
	char src[MAX];
	char find[MAX];
	char replace[MAX];

	char temp[MAX][MAX];
	gets(src);
	gets(find);
	gets(replace);

	int temp_count = 0;
	int iter = 0;
	for (int i = 0; i < strlen(src); i++)
	{
		if (src[i] == ' ')
		{
			for (int j = iter; j < i; j++)
			{
				temp[temp_count][j - iter] = src[j];
			}
			temp[temp_count][i - iter] = 0;
			temp_count++;
			iter = i + 1;
		}
	}
	for (int j = iter; j < strlen(src); j++)
	{
		temp[temp_count][j - iter] = src[j];
	}
	temp[temp_count][strlen(src) - iter] = 0;
	temp_count++;

	for (int i = 0; i < temp_count - 1; i++)
	{
		if (strcmp(temp[i], find) == 0)
		{
			cout << replace << " ";
		}
		else
		{
			cout << temp[i] << " ";
		}
	}
	if (strcmp(temp[temp_count - 1], find) == 0)
	{
		cout << replace << endl;
	}
	else
	{
		cout << temp[temp_count - 1] << endl;
	}

	return 0;
}
void main()
{
	char s[100][100],a[100],b[100];
	int i=0,k;

	do
	{
	scanf("%s",s[i]);
	i++;
	}
	while(getchar()!='\n');

	k=i;

	scanf("%s %s",a,b);

	for(i=0;i<k-1;i++)
		if(strcmp(s[i],a)==0) printf("%s ",b);
		else printf("%s ",s[i]);
	if(strcmp(s[i],a)==0) printf("%s",b);
	else printf("%s",s[i]);

}
int main() {
  char buf1[100];
  char buf2[100];
  char buf3[100];
  char *tmp;
  gets(buf1);
  gets(buf2);
  gets(buf3);
  tmp = buf1;
  while ((*tmp) != 0) {
    if (strncmp(tmp, buf2, strlen(buf2)) == 0) {
      if ((tmp == buf1 || *(tmp-1) == ' ')) {
        printf("%s", buf3);
        tmp += strlen(buf2);
      } else {
        printf("%c", *tmp);
        ++tmp;
      }
    }
    else {
      printf("%c", *tmp);
      ++tmp;
    }
  }
  return 0;
}
int main ()
{
	char s[100],a[100],d[100],b[100][50];
	int i,j=0,k=0,n,m,l;
	gets(s);
	scanf("%s",a);
	scanf("%s",d);
	n=strlen(s);
	for(i=0;i<n;i++)
	{
		if(s[i]!=' ')
		{
			b[j][k]=s[i];
			k++;
		}
		else
		{
			b[j][k]='\0';
			j++;
			k=0;
		}
	}
	b[j][k]='\0';
	for(m=0;m<j+1;m++)
	{
		l=strcmp(a,b[m]);
		if(l==0) strcpy(b[m],d);
		if(m==0) printf("%s",b[m]);
		else printf(" %s",b[m]);
	}
	return 0;
}
void main()
{
	int i,j,p=0,k;
	char s[10000],ch[100],a[100],b[100];
	gets(s);
	gets(a);
	gets(b);
	for(i=0;s[i]!='\0';i++)
	{
	for(j=0;(s[i]!=' '&&s[i]!='\0');i++,j++)
			ch[j]=s[i];
	ch[j]='\0';
	if (strcmp(ch,a)==0) strcpy(ch,b);
	if (p>0) printf(" ");
	printf("%s",ch);
	for(k=0;k<=j;k++) ch[k]='\0';
	p++;
	}
}
int main()
{
    char s[100],re[100],x[100],wd[50][100];
    int n,i,a=0,j=0,k,e,l,nc[100];
    gets(s);
    scanf("%s",re);
    scanf("%s",x);
    for(i=0;s[i]!='\0';i++){
       if(s[i]!=' '){
         wd[a][j]=s[i];
         j++;}
       if(s[i]==' '&&s[i+1]!=' '){
         nc[a]=i;
         wd[a][j]='\0';
         a++;
         j=0;}
       }
    l=strlen(s)-nc[a-1];
    wd[a][l-1]='\0';
    for(i=0;i<=a;i++){
       if(strcmp(re,wd[i])==0){
         strcpy(wd[i],x);}
    }
    for(i=0;i<a;i++){
       printf("%s ",wd[i]);
       }
    printf("%s",wd[a]);
       return 0;
}
int main(void)
{
	char a[100],b[100],c[100],d[100],e[100]="\0";
	int i,j;
	char *s;
	gets(a);
	gets(b);
	gets(c);
    s=a;
	strcat(a," ");
	for(i=0;a[i]!='\0';i++)
	{
		j=0;
		while(a[i]!=' ')
		{
			d[j]=a[i];
			i++;
			j++;	
		}
		d[j]='\0';
		if((!strcmp(d,b))&&(d[0]!='\0'))
		{
			strcat(e,c);	
		}
		else
		{
			strcat(e,d);	 
		}
		if(a[i+1]!='\0') strcat(e," ");
		
	}
		puts(e);
}
int main()
{
	int len,len1,m=1,p=0;
	char str[110],word[100][100],w1[100],w2[100];
	cin.getline(str,110,'\n');
	cin.getline(w1,100,'\n');
	cin.getline(w2,100,'\n');
	len=strlen(str)-1;
	len1=strlen(w2)-1;
	for(int i=0;i<=len;i++)
	{
		if(str[i]!=' ')
		{
			word[m][p]=str[i];
			p++;
		}
		if(str[i]==' ')
		{
			p=0;
			m++;
		}
	}
	for(int i=1;i<=m;i++)
	{
		if(strcmp(word[i],w1)==0)
		{
			for(int j=0;j<=len1;j++)
				word[i][j]=w2[j];
			for(int j=len1+1;j<=98;j++)
				word[i][j]='\0';
		}
	}
	for(int i=1;i<=m-1;i++)
		cout<<word[i]<<" ";
	cout<<word[m]<<endl;
	return 0;
}
void main()
{
	int i,j,k;
	char a[100]={""},b[100]={""},c[100]={""},d[100]={""};
	gets(c);
	gets(a);
	gets(b);
	for(i=0;;)
	{
		for(j=0;c[i]!=' '&&c[i]!='\0';i++,j++)
			d[j]=c[i];
		d[j]='\0';
		if(strcmp(d,a)==0)
			printf("%s",b);
		else for(k=0;k<j;k++)
				printf("%c",d[k]);
		if(c[i]!='\0') printf(" ");
		else break;
		i++;
	}
}
int main(){
char a[11],b[101],z[11],s[16][11];
gets(b);
gets(a);
gets(z);										//??
int i,j,m,n,l,q[22];
for(i=0,m=0,n=0;b[i]!='\0';i++){    
	if(b[i]!=' '){
		s[m][n]=b[i];
	n++;
	
	}
	else{
		
		q[m]=n;
		n=0;
	m++;
			}
		}
q[m]=n;										//????????????
	for(i=0,j=0;i<=m;i++){
		if(a[0]==s[i][0]){
			l=1;
		for(j=0;j<q[i];j++){
			if(a[j]!=s[i][j]){
			l=0;
			}
			if(q[i]!=strlen(a)){
			l=0;
			}
		}
		if(l){
			for(j=0;z[j]!='\0';j++){
			s[i][j]=z[j];
			}
		q[i]=j;
		}
		}
	}												//??

	for(i=0;i<m;i++){
		for(j=0;j<q[i];j++){
		printf("%c",s[i][j]);
		}
		printf(" ");
	}
	
		for(j=0;j<q[m];j++){
		printf("%c\0",s[i][j]);
		}											//??
	return 0;}
void main()
{
	int l,i,j=0,k=0;
	char s[100],a[20],b[20],str[50][20]={" "},(*p)[20];
	gets(s);
	scanf("%s",a);
	scanf("%s",b);
	l=strlen(s);
	for(i=0;i<l;i++)
	{
		if(s[i]!=' ')
			str[j][k++]=s[i];
		else
		{
			j++;
			k=0;
		}
		if(s[i+1]=='\0')
			j++;
	}
	p=&str[0];
	for(i=0;i<j;i++)
	{
		if(strcmp(a,*(p+i))==0)
			strcpy(*(p+i),b);
	}
	for(i=0;i<j;i++)
	{
		if(i==0)
	    	printf("%s",*(p+i));
		else
			printf(" %s",*(p+i));
	}
	
}
int main(){
	int i,j,flag;
	char s[101],a[101],b[101];
	gets(s);
	gets(a);
	gets(b);
	flag=0;
	do{
		for(i=flag;i<strlen(s);i++){
			if(s[i+1]==' ' || s[i+1]=='\0'){
				if(i-flag+1!=strlen(a)){
					for(j=flag;j<=i;j++){
						printf("%c",s[j]);
					}
				}else{
					for(j=flag;j<=i;j++){
						if(a[j-flag]!=s[j]){
							break;
						}
					}
					if(j==i+1){
						printf("%s",b);
					}else{
						for(j=flag;j<=i;j++){
							printf("%c",s[j]);
						}
					}
				}
			    flag=i+2;
				if(s[i+1]==' '){
				    printf(" ");
				}else{
					printf("\n");
				}
				break;
			}
		}
	}while(i<strlen(s));
	return 0;
}
int main()
{
	char str[300],a[50][20],t[20],word1[20],word2[20];
	int i,j=0,k=0,num,p1,p2,q1,q2;
	gets(str);

	for(i=0;str[i]!=0;i++)
	{
		if(str[i]==' '||str[i]==',')
		{
			a[j][k]=0;
			j++;
			k=0;
		}
		else
		{
			a[j][k]=str[i];
			k++;
		}
	}

	a[j][k]=0;

	gets(word1);
	gets(word2);


	for(k=0;k<j+1;k++)
	{
		if(strcmp(word1,a[k])==0)

			strcpy(a[k],word2);
	}


	for(k=0;k<j+1;k++)
	{
		if(strlen(a[k])!=0)
		{
			if(k==0)

			printf("%s",a[k]);
			else
			printf(" %s",a[k]);
		}
	}


	return 0;
}
void main()
{
	char str[100],s1[100],s2[100],t[100];
	char *p,*p1;
	int i=0;
	gets(str);
	gets(s1);
	gets(s2);
	for(p=str;*(p-1)!='\0';p++)
	{
		if(*p==' '||*p=='\0')//??????
		{
			*(t+i)='\0';//?????
			if(strcmp(s1,t)==0)//????
				p1=s2;
			else p1=t;//??

			if(p-strlen(t)!=str)//???????
				putchar(' ');
			printf("%s",p1); 
			i=0;
		}
		else
		{
			*(t+i)=*p;
			i++;
		}
	}		
}
/*
 * ?????.cpp
 *
 *  Created on: 2010-11-7
 *      Author: acer
 */

int main()
{
	char Data[20][20],Word_1[20],Word_2[20];		//Data???????  Word_1,Word_2?????????????
	int i,t;

	int get_data(char Data[20][20]);				//????+????
	t=get_data(Data);
	cin>>Word_1;
	cin>>Word_2;

	if(strcmp(Data[0],Word_1)==0)					//???????????????????????
		strcpy(Data[0],Word_2);
	cout<<Data[0];
	for(i=1;i<t;i++)
	{
		if(strcmp(Data[i],Word_1)==0)
			strcpy(Data[i],Word_2);
		cout<<' '<<Data[i];
	}
	return 0;
}
int get_data(char Data[20][20])
{
	int i=0,j=0;
	char c;
	while((c=getchar())!='\n')						//??????
	{
		if(c==' ')									//?????? ??????????????????????????????????????
		{
			Data[i][j]='\0';
			i++;
			j=0;
			continue;
		}
		Data[i][j]=c;
		j++;
	}
	Data[i][j]='\0';
	return i+1;										//????????
}
void main()
{
	int i,j,p=0,k;
	char *s,*ch,*a,*b;
	s=(char*)malloc(100*sizeof(char));
	ch=(char*)malloc(100*sizeof(char));
	a=(char*)malloc(100*sizeof(char));
	b=(char*)malloc(100*sizeof(char));
	for(i=0;i<100;i++)
		*(s+i)='\0';
	gets(s);
	gets(a);
	gets(b);
	for(i=0;*(s+i)!='\0';i++)
	{
	for(j=0;(*(s+i)!=' ' && *(s+i)!='\0');i++,j++)
			*(ch+j)=*(s+i);
	*(ch+j)='\0';
	if (strcmp(ch,a)==0) strcpy(ch,b);
	if (p>0) printf(" ");
	printf("%s",ch);
	for(k=0;k<=j;k++) *(ch+k)='\0';
	p++;
	}
}
int main(){
	char sen[101],word1[101],word2[101],danci[50][101];
	int LEN[50],LEN1,i,k=0,j=0;
	gets(sen);
	gets(word1);
	gets(word2);
	LEN1=strlen(sen);
	for(i=0;i<LEN1;i++){
		if(sen[i]!=' '){
			danci[j][k]=sen[i];
			k++;
		}else{
			danci[j][k]='\0';
			j++;
			k=0;
		}
	}
	danci[j][k]='\0';
	for(i=0;i<j;i++){
		LEN[i]=strlen(danci[i]);
	}
	for(i=0;i<=j;i++){
		if(strcmp(danci[i],word1)==0){
			strcpy(danci[i],word2);
		}
	}
	for(i=0;i<j;i++){
		printf("%s ",danci[i]);
	}
	printf("%s\n",danci[j]);
	return 0;
}
//????



int main()
{
	char input[110], replaced[110], replace[110];				//??????????????????????
	char *p, *start;											//????input??inputL????
	int len;													//?????????
	char temp;

	cin.getline(input, 110);
	cin.getline(replaced, 110);
	cin.getline(replace, 110);

	len = strlen(replaced);
	p = strstr(input, replaced);								//?????????
	start = input;												//???????
	while(p != NULL)											//??????
	{
		if((p == input || isalpha(*(p - 1)) == 0) && isalpha(*(p + len)) == 0)
		//??????????
		{
			*p = '\0';											//??\0?

			cout << start << replace;

			start = p + len;									//start????????????
			p = strstr(start, replaced);						//p??input?????start?????
		}
		else
		{
			p = input + (p - input) + len;						//p?????????
			temp = *p;											//???
			*p = '\0';

			cout << start;

			start = p;											//????????
			*start = temp;										//????
			p = strstr(start, replaced);
		}
	}


	cout << start << endl;										//????????

	return 0;
}
int main()
{
int Judge=0;
int W=0;
int Temp=0;
int M=0;
int Num_of_Origin;
int Start=101;
int k=0;
int Num_of_Change=0;
int Num_of_Changed=0;
int i=0;
char Change[100]={0};
char Changed[100]={0};
char Origin[100]={0};

gets (Origin);

gets (Changed);

gets (Change);
  for (i=0;i<100;i++)
    {if (Changed[i]==0)
     {Num_of_Changed=i;
      break;
     }
 }

for (i=0;i<100;i++)
 {if (Change[i]==0)
   {Num_of_Change=i;
    break;
   }
 }
for (W=0;W<100;W++)
{ for (i=0;i<100;i++)
    {if (Origin[i]==0)
   {Num_of_Origin=i;
    break;
    }
 }
 for (i=0;i<100;i++)
   {
        if ( Origin[i]==Changed[0])
      { for (k=0;k<Num_of_Changed;k++)
         {if (Origin[i+k]!=Changed[k])
             {Judge=1;break;
             }
          }
     if (Judge==0&&i!=0)
             {if (Origin[i-1]!=' '&&Origin[i-1]!=',')
                {
                 Judge=1;}

             }   
     if (Judge==0&&i==0)
             {if (Origin[Num_of_Changed]!=' ')
             {Judge=1;}
             }
  
           if (Judge==0)
          {Start=i;} 
           Judge=0; 
      }
   }

Temp=Num_of_Origin-Start;
if (Num_of_Change>=Num_of_Changed)
  {   for (i=0;i<Num_of_Change;i++)
     { if (i<Num_of_Changed)
       {Origin[Start+i]=Change[i];
        Temp-=1;}
          else 
          {
            Num_of_Origin++;
              for (M=0;M<Temp;M++)
              {Origin[Num_of_Origin-1-M]=Origin[Num_of_Origin-2-M];
              }
           
           Origin[Start+i]=Change[i];
         
         }
     }
  }
 else 
  {  for (i=0;i<Num_of_Changed;i++)
     {if (i<Num_of_Change)
        {Origin[Start+i]=Change[i];
          Temp-=1;
           M=i+1;   }
           else
             {
                      Num_of_Origin--;       
                  for(k=0;k<Temp;k++)
                      {Origin[Start+M+k]=Origin[Start+M+k+1];
                       Origin[Num_of_Origin+1]=0;
                       }
                    
             }
         
      }
   } 
Start=101;
}


      for (i=0;i<100;i++)       
   {   if (Origin[i]!=0)
      cout<<Origin[i];
}      
 cout<<endl;     
return 0;
}
int main()
{
	char juzi[9999],danci1[101],danci2[101];
	int i,j=0,k,l,length1,length2,count=0;
	gets(juzi);
	scanf("%s%s",danci1,danci2);
	for(i=0;i<strlen(juzi);i++)
	{
		if(i==0||juzi[i-1]==' ')
			for(j=0;j<strlen(danci1);j++)
			{
				if(*(juzi+i+j)==*(danci1+j))
					count++;
				else
				{
					count=0;
					break;
				}
			}
		if(count!=0)
		{
			printf("%s",danci2);
			i+=strlen(danci1)-1;
			count=0;
		}
		else printf("%c",juzi[i]);
	}
	return 0;
}
void main()
{
	char d[30][20]={""},e[20]={""},f[20]={""},*a[30],*b,*c;
	int i,num=1;
	for(i=0;i<30;i++)
		*(a+i)=*(d+i);
	b=e;c=f;
	scanf("%s",*a);
	for(i=1;getchar()!='\n';i++)
	{scanf("%s",*(a+i));num=num+1;}
	scanf("%s%s",b,c);
	for(i=0;i<num;i++)
	{
		if(strcmp(*(a+i),b)==0)
		{strcpy(*(a+i),c);}
	}
	printf("%s",*a);
	for(i=1;i<num;i++)
	{
		printf(" %s",*(a+i));
	}
}
int main()
{
	char zong[2000];//????
	char x[200],y[200],words[200][20];//???????
	int i,j=0,p=0,len;
	gets(zong);
	scanf("%s %s",x,y);
	len=strlen(zong);
	for(i=0;i<len;i++){
		if(zong[i]!=' '){
			words[j][p]=zong[i];
			p++;
		}else{
			words[j][p]=0;
			j++;
			p=0;
		}
	}
	words[j][p]=0;
	for(i=0;i<j;i++){
		if(strcmp(words[i],x)==0) {
			printf("%s ",y);
		}else {
			printf("%s ",words[i]);
		}
	}
	if(strcmp(words[j],x)==0) {
			printf("%s\n",y);
	}else {
			printf("%s\n",words[i]);
	}
	return 0;

		
}
int main ()
{
	char s[100],w1[100],w2[100];
	gets(s);
	gets(w1);
	gets(w2);
	int i,l = strlen(s),l1 = strlen(w1),l2 = strlen(w2),p=0,m,n,j,k;
	for (i=0;i<l;i++)
	{
		   if (s[i]==w1[0] && (s[i-1]==32||i==0) && (s[i+l1]==32||i==l-1))
		   {
			    p = 1;
		    	for (m=i,n=0;n<l1;m++,n++)
				if (s[m]!=w1[n])
				{
					p = 0;
					break;
				}
		   }
		   if (p)
		   {
			   for (k=0;k<l2;k++)
			   printf ("%c",w2[k]);
			   i = i+l1-1;
			   p = 0;
		   }
	       else printf ("%c",s[i]);
	}
	

	return 0;
}
void main()
{
	char *s,*a,*b,*p,*c,n,*end;
	s=(char *)malloc(101*sizeof(char));
	a=(char *)malloc(101*sizeof(char));
	b=(char *)malloc(101*sizeof(char));
	c=(char *)malloc(101*sizeof(char));
	gets(s);
	gets(a);
	gets(b);
	p=s;
	end=s+strlen(s);
	for (;;)
	{
		sscanf(p,"%s",c);
		if (strcmp(c,a)==0) printf("%s",b);
		else printf("%s",c);
		p=p+strlen(c)+1;
		if (p>=end) break;
		printf("%c",' ');
	}
}
int main(){
	int i = 0;
	int j = 0;
	int begin;
	int end;
	char now[101];
	char sen[1000];
	char old[101];
	char newone[101];

	gets(sen);
	gets(old);
	gets(newone);
	while(sen[i] != '\0'){
		now[j] = sen[i];
		if(j == 0)
			begin = i;
		if(now[j] == ' ' || sen[i+1] == '\0'){
			
			end = i;
			if(sen[i+1] == '\0')
				now[j+1] = '\0';
			else
				now[j] = '\0';
			if(strcmp(now, old) == 0){
				if(sen[i+1] == '\0')
					printf("%s", newone);
				else
					printf("%s ", newone);

			}
			else{
				if(sen[i+1] == '\0')
					printf("%s", now);
				else
					printf("%s ", now);
			}
			j = -1;
		}
		i++;
		j++;
	}
	printf("\n");
	return 0;
}
void main(){
char s[101],a[101],b[101],word[101];
int i=0,j,flag,n=0;
gets(s);
gets(a);
gets(b);
while(s[i-1]!=0||i==0){
while(s[i]!=' '&&s[i]!=0){
word[i-n]=s[i];
i++;
}
word[i-n]=0;
flag=1;
for(j=0;j<=strlen(a);j++)
if(a[j]!=word[j])
flag=0;
if(flag)
printf("%s",b);
else printf("%s",word);
if(s[i]!=0)printf("%c",s[i]);
i++;
n=i;
}
}