输入一篇文章,从中查找给定的字符串,并将其替换为指定字符串后输出。

输入一篇文章,从中查找给定的字符串,并将其替换为指定字符串后输出。
要求: 1)从键盘输入给定的待查找字符串,该字符串中只包含大小写字母、数字字符、中括号字符‘[’和‘]’。字符串的长度不超过20。 2)在给定待查找字符串中,中括号最多出现一次(也可以没有),中括号中至少包含一个以上的字母或数字。表示该位置上的字符只要与中括号内的任一字符相同,则匹配成功。 3)查找字符串时大小写无关。 4)查找到给定字符串后,将其替换为指定字符串(其中不含空格,不超过20个字符)输出,其它字符原样输出。 【输入形式】 首先从标准输入(键盘)读入待查找字符串和替换后的字符串,两字符串分行输入。 然后从新的一行开始输入一篇文章。 【输出形式】 将替换后的文章输出到标准输出(屏幕)。
【样例输入1】

zh[Ao]ng
wang
Zhang ying ju zhu zai ZhongGuo.
Ta zheng zai du gao zhong.
Bie ren dou jia ta xiao zhang.

【样例输出1】

wang ying ju zhu zai wangGuo.
Ta zheng zai du gao wang.
Bie ren dou jia ta xiao wang.

请添加注释
怎么实现未知行数的输入
怎么实现不区分大小写
怎么实现字符串的替换

对大小写,你可以将输入的所有字符都转译为大写或者是小写。
替换字符串可以使用replace方法

strstr或strchr查找并使用索引替换

仅供参考:

#include <stdio.h>
#include <string.h>
char s[256];
char *p;
int r,n,i;
int main() {
    while (1) {
        printf("请输入一行文字(空行结束),\"%%20\"将替换为\" \",\"你懂得\"将替换为\"XXXXXX\":\n");
        fgets(s,256,stdin);
        if ('\n'==s[0]) break;
        p=s;
        while (1) {
            p=strstr(p,"%20");
            if (p) {
                memmove(p+1,p+3,strlen(p)-3+1);
                p[0]=' ';
            } else break;
        }
        p=s;
        while (1) {
            p=strstr(p,"你懂得");
            if (p) {
                memmove(p+6,p+6,strlen(p)-6+1);
                for (i=0;i<6;i++) p[i]='X';
            } else break;
        }
        printf("%s",s);
    }
    return 0;
}
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//abcdefg%20helloworld%20something.pdf
//abcdefg helloworld something.pdf
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事
//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//




运行这个例子试一下,有不清楚的可以问额。
输入的时候长度小于1000,以$符号结束。要改大,只需要数组改长一点就可以了。

#include<stdio.h>
#include<string>
int main(){
    char ss[1001];
    char  ss1[1001];
    char  ss2[1001];
    int tt[1001];
    char c;
    gets(ss);
    scanf("%s",ss1);
    scanf("%s",ss2);
    int m=1,n=0;
    for(int i=0;ss[i]!='$';i++)
    {   m=1;
        int dd=i;
         for(int j=0;j<strlen(ss1);j++)
         {    
             if(ss[dd++]!=ss1[j])
             {
                 m=0;
                 break;
             }
         }
        if(m){
                i=--dd;
                for(int j=0;j<strlen(ss2);j++)
                tt[n++]=ss2[j];
             }
        else 
            tt[n++]=ss[i];
    }
    tt[n]='\0';
    for(int i=0;i<n;i++)
        printf("%c",tt[i]);
    return 0;
}