輸入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 <stdio.h> 2 #include <string.h> 3 #define N 80 4 5 void del_str(char *str, char *s, char *resultstr) //刪除函數 6 { 7 int i, j, resultstr_len, s_len; //resultstr_len為resultstr字符串的長度,s_str為s字符串的長度 8 s_len = strlen(s); 9 strcpy(resultstr, str); //將str拷貝到resultstr 10 char *p; 11 p = strstr(resultstr, s); //p指向s在resultstr中出項的首字符 12 resultstr_len = strlen(resultstr); 13 14 while(p != NULL) { 15 for(i = p - resultstr; i < resultstr_len - s_len + 1; i++) { 16 resultstr[i] = resultstr[i + s_len]; 17 } 18 resultstr_len = strlen(resultstr); 19 p = strstr(resultstr, s); 20 } 21 } 22 23 int main() 24 { 25 char str[N+1], s[N+1], resultstr[N+1]; //str為第一個字符串,s為第二個字符串,resultstr為刪除后的字符串 26 gets(str); 27 gets(s); 28 del_str(str, s, resultstr); //刪除函數 29 printf("%s\n", resultstr); 30 31 return 0; 32 }