UVA 10115 Automatic Editing

字符串函数的应用。

# include <cstdio>
# include <cstring>

# define RULESN 10 + 5
# define MAXLEN 80 + 5

int n;
char src[RULESN][MAXLEN];
char des[RULESN][MAXLEN];
char text[4 * MAXLEN];

void replace(char *t, char *s, char *d)
{
    int len = strlen(s);
    char *p, tmp[4 * MAXLEN];
    while (p = strstr(t, s))
    {
        strcpy(tmp, p), t[p-t] = 0;
        strcat(t, d), strcat(t, tmp+len);
    }
}

int main()
{    
    while (scanf("%d", &n), n)
    {
        getchar();
        for (int i = 0; i < n; ++i)
            gets(src[i]), gets(des[i]);
        gets(text);
        for (int i = 0; i < n; ++i)
            replace(text, src[i], des[i]);
        puts(text);
    }
    
    return 0;
}

/**/

posted on 2012-08-02 16:21  getgoing  阅读(173)  评论(0编辑  收藏  举报

导航