uva 10115

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char find[10][90];
char replace[10][90];
char input[300];
void edit( char input[], int time )
{
     char temp1[300], temp2[300];
     int i, j, len1, len2, t, turn, start, change, x, x1, y, y1;
     turn = 0;
     while( turn < time )
     {
	     	start = 0;
	     	len1 = strlen( input );
	     	len2 = strlen( find[turn] );
     		while( start < len1 )
     		{
	            if( input[start] == find[turn][0] )
	            {        
						change = 1;   
	                     for( j = 0, i = start; j < len2; j++,i++ )
                          if( input[i] != find[turn][j] )
                          {
                              change = 0;
                              break;
                          }
	                     if( change )
	                     {
	                         for( x = 0,x1 =0; x < start; x++ )
	                              temp1[x1++] = input[x];
	                         temp1[x1] = '\0';
	                         for( y = start+len2, y1 = 0; y < len1; y++ )
	                              temp2[y1++] = input[y];
	                         temp2[y1] = '\0';
	                         strcat( temp1, replace[turn] ); 
	                         strcat( temp1, temp2 );         
	                         strcpy( input, temp1 );
	                         start = 0;
	                         len1 = strlen( input );
	                     }
	                     else
	                     	start++;                  
	            }
	            else
            		start++;  
	        }
	        turn++; 
    }                	
     printf( "%s\n", input );
};                              
int main()      
{
	int T, i;
    while( scanf( "%d\n", &T ) != EOF && T )
    {
           for( i = 0; i < T; i++ )
           {
                gets( find[i] );
                gets( replace[i] );
           }
           gets( input );
           edit( input, T );    
	}	         
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值