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; }