PAT 字符串-02 删除字符串中的子串
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 }