1 /*
2 2 *PAT 字符串-02 删除字符串中的子串
3 3 *2015-08-09
4 4 作者:flx413
5 5 */
6
7 #include<stdio.h>
8 #include<string.h>
9
10 void fun(char *str, char *substr) {
11 int i, j, k, flag;
12 int len = strlen(substr);
13
14 while(strstr(str, substr)) { //如果字符串中存在子串
15 flag = 0; //初始化 flag = 0
16
17 for(i = 0; str[i]; i++) {
18 for(j = i, k = 0; substr[k] == str[j] && substr[k] != '\0'; k++, j++) {
19 if(substr[k + 1] == '\0') { //找到子串第一次出现的位置 i,flag 赋值为1
20 flag = 1;
21 }
22 }
23 if(flag) { //对原来的字符串做删除
24 for(; str[i + len]; i++) {
25 str[i] = str[i + len];
26 }
27 str[i] = '\0';
28 break;
29 }
30 }
31 }
32 }
33
34 int main() {
35 char str[81],substr[81]; //题目要求输入字符串长度不大于80,定义str[80]会出错
36 gets(str);
37 gets(substr);
38 fun(str, substr);
39 printf("%s", str);
40 return 0;
41 }