UVA 10115-Automatic Editing

来源:互联网 发布:淘宝二维码在哪里 编辑:程序博客网 时间:2024/06/08 16:20

UVA 10115-Automatic Editing#

题目大意:替换字符,直到字符串找不到对应子字符串后输出

解题思路:利用strcat和strcpy操作

#include <stdio.h>#include <string.h>#include <iostream>using namespace std;int find(char *a, char *b, char *c, char *d) {    int s = 0;    for(int i = 0; b[i] != '\0'; i++) {        if(a[0] == b[i]) {            int j = 0;            for(int k = i;a[j] != '\0';k++,j++)                if(a[j] != b[k])                    break;            if(a[j] ==  '\0') {                strcat(d,c);                strcat(d,b+i+j);                strcpy(b,d);                return 1;            }            else {                d[s] = b[i];                s++;            }        }        else {            d[s] = b[i];            s++;        }    }    d[s] = '\0';    return 0;   }int main() {    int n;    char a[15][1000], b[15][1000];    char c[10000],d[10000];    while(scanf("%d", &n) && n != 0) {        memset(c,'\0',sizeof(c));        memset(a,'\0',sizeof(a));        memset(b,'\0',sizeof(b));        getchar();        for(int i = 0; i < n; i++) {            gets(a[i]);            gets(b[i]);        }        gets(c);        int x;        for(int i = 0; i < n;) {             memset(d,'\0',sizeof(d));            x = find(a[i],c,b[i],d);            if(x == 0)                i++;        }               puts(c);    }    return 0;}
0 0