0035 寫一個函式squeeze(s1,s2),它刪去字串s1中與s2中的任意字元想匹配的字元
阿新 • • 發佈:2021-11-29
問題描述:
寫一個函式squeeze(s1,s2),它刪去字串s1中與s2中的任意字元想匹配的字元。
程式碼展示:
1 #include<stdio.h> 2 #include<string.h> 3 int deleteSample(char str1[], char str2[]); 4 int main() { 5 char str1[100], str2[50]; 6 int i; 7 printf("請輸入str1:"); 8 scanf("%s",&str1); 9 printf("請輸入str2:"); 10 scanf("%s",&str2); 11 int len = deleteSample(str1, str2); 12 printf("刪除後的str1的字串為:"); 13 for(i=0; i<len; i++){ 14 printf("%c",str1[i]); 15 } 16 return 0; 17 } 18 int deleteSample(char str1[], char str2[]){ 19 int len1 = strlen(str1); 20 int len2 = strlen(str2);21 int i=0,j=0,k; 22 int flag=0; 23 while(i<len1 && j<len2){ 24 if(str1[i] == str2[j]){ //查詢相同位 25 i++;j++; 26 }else{ 27 flag++; 28 i = flag; 29 j=0; 30 } 31 if(j == len2){ //邏輯刪除 32 while(i<len1){ 33 str1[i-len2] = str1[i]; 34 i++; 35 } 36 len1 = len1 - len2; 37 i = 0; 38 j = 0; 39 flag = 0; 40 } 41 } 42 return len1; 43 }
執行截圖: