字串的查詢刪除

2022-09-23 02:52:06 字數 968 閱讀 4488

給定一個短字串(不含空格),再給定若干字串,在這些字串中刪除所含有的短字串。

輸入只有1組資料。

輸入一個短字串(不含空格),再輸入若干字串直到檔案結束為止。

刪除輸入的短字串(不區分大小寫)並去掉空格,輸出。

輸入in

int main()

輸出tma()

注:將字串中的in、in、in、in刪除。

首先,需要輸入待刪除字串字樣,因為需要刪除所有的大小寫匹配的字串,所以先將輸入的刪除的字串全部變成小寫。

然後採用二維陣列儲存儲存需要處理的字串,這裡需要注意使用gets函式吸收輸入的字串,如果使用scanf遇到空格就會自動跳過。

輸入完畢後,開始處理。在輸入過程中,已經通過index記錄了總計包含了多少字串,遍歷二維陣列,將不變的先儲存到另一個陣列中,然後將自身變成小寫繼續儲存(以備下面的大小寫一樣匹配)

然後繼續遍歷二維,開始字串匹配。(這是核心

for(int j = 0, k=0; j這裡使用的是字串的簡單模式匹配,定義一個k,每次都從第0 個位置開始匹配,若果匹配上了,繼續往後走,直到k達到了待刪除字串的長度。一旦某個位置發生失配,就要回到起點位置,看看當前位置是不是為空,如果不為空,輸出最原先的字元,否則往後走一位。

#include #include char del[1000], str[1001][1001], ans[1001][1001];

int main()

} while (gets (str[index++])); //讀入資料;

for(int i = 0; i < index; i++)

} for (int j = 0, k = 0; j < len2; )

} else

} printf ("\n");

} return 0;

}