UVA 10115 – Automatic Editing(字串替換問題)

來源:互聯網
上載者:User

      這是一道替換字串中關鍵字的題。就像word中用一字串替換另外一個文本中包含的字串。

下面代碼中,找到被替換串位置後用了4步進行替換:

1、被替換串起始位置之前的字串複製到臨時字串中;

2、將新字串複製到臨時字串中;

3、將被替換串結束位置後的字串複製到臨時字串中;

4、將臨時字串複製到原字串

#include <stdio.h>#include <string.h>// 該函數實現將字串str1中的str2字串替換為str3bool replace(char str1[], char str2[], char str3[]) {    bool flag = true;    char *x1 = strstr(str1, str2);    if (x1 == NULL) {        return false;    }    int len1 = strlen(str1);    int len2 = strlen(str2);    int len3 = strlen(str3);    int j = 0, i;    char tmp[1050];    for (i=0; i<(x1-str1); i++)        tmp[j++] = str1[i];    for (i=0; i<len3; i++)        tmp[j++] = str3[i];    for (i=(x1-str1+len2); i<len1; i++)        tmp[j++] = str1[i];    tmp[j] = '\0';    strcpy(str1, tmp);    return true;}int main() {    char str[1050];    char a[15][1050], b[15][1050];    int n;    while (scanf("%d", &n) && n) {        getchar();        for (int i=0; i<n; i++) {            gets(a[i]);            gets(b[i]);        }        gets(str);        for (int i=0; i<n; i++) {            while (replace(str, a[i], b[i]));        }        printf("%s\n", str);    }    return 0;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.