字符串中子串的查找与替换C语言描述

【问题描述】

输入一个字符串,以回车结束(字符串长度 ≤200)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

【输入形式】

输入包括 3 行,

第 1 行是包含多个单词的字符串s;

第 2 行是待替换的单词a(长度 ≤100);

第 3 行是a将被替换的单词b(长度 ≤200)。

s,a,b 最前面和最后面都没有空格。

【输出形式】

输出只有 1 行,将 s中所有单词a替换成b之后的字符串。

【样例输入】

You want someone to help you
You
I

【样例输出】

I want someone to help you


int main()
{
    char s[201] = {0}, a[101], b[201];
    char word[201][201] = {0}, ch;
    int cnt = 0, i = 0;
    while ((ch = getchar()) != '\n')
    {
        if (ch == ' ')
        {
            cnt++;
            i = 0;
            continue;
        }
        word[cnt][i] = ch;
        i++;
    }
    cnt++;
    scanf("%s", a);
    scanf("%s", b);
    for (int i = 0; i < cnt; i++)
    {
        if (strcmp(a, word[i]) == 0)
        {
            strcat(s, b);
        }
        else
        {
            strcat(s, word[i]);
        }
        if (i != cnt - 1)
            strcat(s, " ");
    }
    printf("%s", s);

    return 0;
}