10-2. 刪除字符串中的子串(20)


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM