尚未解決 對字串中的特定字元進行刪除

2021-10-12 04:56:31 字數 575 閱讀 6002

題目:

程式的squeeze函式的功能是刪除字串s中所出現的與變數c相同的字元。

**輸入輸出格式要求:無輸入輸出提示資訊,要求可以輸入帶空格的字串;

按原題要求,先輸入乙個字串s,回車換行後再輸入字元c(c為任意字元)。

分析:採用雙陣列,乙個儲存原來輸入的字串,另乙個用來儲存完成刪除操作後的字串。

錯誤分析:直接在原陣列中進行刪除操作,再直接輸出原陣列。

這樣有乙個致命問題:直接刪除原陣列中的某個元素後必須對陣列整體進行前移,**增加,運算速度大打折扣,記住能不對陣列進行整體前後移動就盡量別移動。直接用另乙個陣列記錄原陣列新序列就足夠了。

**:

#include

intmain

(void

) ns[j]

='\0'

;puts

(ns)

;//陣列輸出使用puts更方便

}

尚未解決的大問題:

題目中要求原字串中能有空格,但我的**不允許,遇到空格後就當作終止符處理了,不知道這個問題怎麼解決,希望有明白人看後不吝賜教,小熊在此萬分感激!

刪除字串中的特定字元

當要刪除字串中的特定字元時,只需要用find 和erase 兩個函式搭配使用即可,find 用於找到特定字元的位置,而erase 則用於刪除該位置上的字元。find c,pos 表示從pos這個位置開始找c字元 erase pos,n 表示從pos這個位置開始刪除n個字元 例如下面就是我寫的乙個刪除...

在字串中刪除特定的字元(字串)。

題目 輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.其實這類題有個特點,字串中的字元分為兩類,就可以聯想快速排序裡的將當前的陣列分為左右兩組,其中左邊的數字小於某值,右邊的數...

在字串中刪除特定字元

第一種方法 遍歷原陣列,在待刪陣列裡遍歷是否刪除該元素 char removechars char str,const char remove if state temp count str i state true i temp count 0 return temp 第二種方法 時間複雜度o n...