从键盘输入两个字符串str和sub,其中str为主串,sub为子串,编一程序删除主串str中包含的所有子串sub

从键盘输入两个字符串str和sub,其中str为主串,sub为子串,编一程序删除主串str中包含的所有子串sub。

img

#include <stdio.h>
#include <string.h>

int main() {
    char str[100], sub[100], newstr[100];
    int i, j, k, n, m, flag;

    printf("str: ");
    gets(str);

    printf("sub: ");
    gets(sub);

    n = strlen(str);
    m = strlen(sub);

    k = 0;
    for (i = 0; i < n; i++) {
        flag = 0;

        for (j = 0; j < m; j++) {
            if (str[i+j] != sub[j]) {
                flag = 1;
                break;
            }
        }

        if (flag == 0) {
            i += m - 1;
        } else {
            newstr[k++] = str[i];
        }
    }

    newstr[k] = '\0';

    printf("result: %s\n", newstr);

    return 0;
}