uva 10115 Automatic Editing

经过两天的奋战,我的UVA字符串最后一道题目终于结束了,回首来时路,最感悟那一幕....

View Code
#include<stdio.h>
#include<string.h>
int main()
{
    int T, i, l;
    while(scanf("%d",&T) && T)
    {
        getchar();
        char st1[50][85], st2[50][85], st[500] = {'\0'}, _st[500];
        for(i = 0;i < T; i++)
        {
            gets(st1[i]);
            gets(st2[i]);
        }
        gets(st);
         for(i = 0;i < T; i++)
        {
            if(strstr(st,st1[i]) != NULL)
            {
                //查找字符串st[i]在字符串st中第一次出现的位置
                char *p = strstr(st,st1[i]);//返回指针p
                l = strlen(st1[i]);
                strcpy(_st,p+l);//将字符串st出现st[i]字符串之后的字符串先保留下来
                *p = '\0';//在指针p处,加上结束标志
                strcat(st,st2[i]);//把替换的字符串接到st后面
                strcat(st,_st);//把保存的字符串接上
                i--;//i--继续循环
            }
        }
        puts(st);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/SDUTYST/p/2528995.html