C語言經典例32 刪除字串中指定的字元

2021-10-02 16:19:49 字數 1425 閱讀 4142

刪除乙個字串中的指定字母,如:字串 「aca」,刪除其中的 a 字母。

本題是要處理字串,在c語言中,我們把他轉換為字元陣列,則本質是要處理陣列,在陣列中刪除某一元素的最簡單方法是設定乙個標記位point初始為0,它代表著當前儲存的非刪除字元的位置,而迴圈變數i則是要遍歷整個字元陣列,在迴圈時,若遇到刪除字元,則i向前進(遞增),而point由於當前不是有效字元,所以point不變,當遇到有效字元時,將該字元儲存在point的位置,並且point向前進(遞增),通過ipoint以不同的規律遞增,從而找到出有效的字元並逐一覆蓋前面的要刪除的字元。

下面以簡單的圖示來描述這個演算法,假設要刪除的字元為a

起初ipoint(為簡單起見,下面都用p)都指向陣列的第乙個位置

在判斷後發現i位置的字元就是a,則進行下一輪迴圈,i遞增,p不動

在判斷後發現i位置的字元不是a,則將i位置的b,賦值給p位置,然後ip都遞增,這樣的話,原來要刪除的a就被後面的字元「覆蓋」掉了,迴圈結束後相當於字串中的a都被刪除了

注:該程式設計思想,在陣列的題目中廣泛使用,需要熟練掌握

#include

#include

void

deletechar

(char a,

char str)

else

} str[point]

='\0'

;// 迴圈結束,最後乙個字元為結束符

}int

main

(void

)

abcaabbcc

bcbbcc

C語言字串拷貝經典

兩種方法 include int main void b i 0 重要 return 0 void copy0 char from,char to to 0 return void copy1 char from,char to to 0 return void copy2 char from,ch...

sqlserver 刪除表中 指定字串

源表t 單據編號 航班計畫日期 航班號 起飛航站 降落航站 c 026413700 2013 2 11 ca1231 pek xiy c 026413699 2013 2 11 ca1231 pek xiy c 026413698 2013 2 11 ca1231 pek xiy c 0264136...

C語言經典例96 計算字串中子串出現的次數

計算字串中子串出現的次數 串的模式匹配在資料結構中有kmp演算法,但這個演算法實現起來繁瑣,難度很大,所以對於一般來說,使用暴力法求解,設有字串str和子串sub,第一輪迴圈從str的第乙個字元開始,設定乙個位置標號j,再與子串sub逐個比較,若比較相同的話,則位置標號向後移,比較下乙個字元,出現第...