uva10115--String

uvaVolumn1 String的最后一题,我还是挺菜的啊,呵呵,不过好歹String都被我完了。挺开心的~

//#define LOCAL
#include <stdio.h>
#include <string.h>

#define MAXN 80 + 10
#define MAX 255 + 10

struct Rule
{
	char find[MAXN];
	char repalceBy[MAXN];
} rules[10];

char text[MAX]; 
char temp[MAX];

int main()
{
#ifdef LOCAL
	freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
#endif
	int numberOfRules;
	int i, j;
	char *p;
	while(scanf("%d", &numberOfRules) && numberOfRules != 0)
	{
		// 数据的初始化
		memset(text, 0, sizeof(text));
		
		// 数据的输入 
		getchar(); // 消除回车符
	 	for(i = 0; i < numberOfRules; i++)
	 	{
	 		 
	 		gets(rules[i].find);
	 		gets(rules[i].repalceBy);
 		}
		
		gets(text);
		// 算法主体
		for(i = 0; i < numberOfRules; i++)
		{
			p = strstr(text, rules[i].find);
			if(p != NULL)
			{
				strcpy(temp, p + strlen(rules[i].find));
				strcpy(p, rules[i].repalceBy);
				strcpy(p + strlen(rules[i].repalceBy), temp);
				i--;
			} 
		}
		 printf("%s\n", text);
	}
	return 0;
}


你可能感兴趣的:(算法,struct,String,null)