输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
Tom is a male

1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 int main(){ 9 int flag,k; 10 string s1,s2; 11 getline(cin,s1); 12 getline(cin,s2); 13 for(int i = 0;i < s1.size();i++){ 14 flag = 1,k = i; 15 for (int j = 0;j < s2.size();j++){ 16 while(s1[i + j] == '\n'){ 17 i++; 18 } 19 if(s1[i + j] != s2[j]){ 20 flag = 0; 21 break; 22 } 23 } 24 if(flag == 1){ 25 for(int j = k;j < i + s2.size();j++){ 26 s1[j] = '\n'; 27 } 28 i = -1;//重置i的开始位置 29 } 30 } 31 for(int i = 0;i < s1.size();i++){ 32 if(s1[i] != '\n') 33 putchar(s1[i]); 34 } 35 putchar('\n'); 36 return 0; 37 }