輸入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 }