刪除乙個字串中的指定字母,如:字串 「aca」,刪除其中的 a 字母。
本題是要處理字串,在c語言中,我們把他轉換為字元陣列,則本質是要處理陣列,在陣列中刪除某一元素的最簡單方法是設定乙個標記位point
初始為0
,它代表著當前儲存的非刪除字元的位置,而迴圈變數i
則是要遍歷整個字元陣列,在迴圈時,若遇到刪除字元,則i
向前進(遞增),而point
由於當前不是有效字元,所以point
不變,當遇到有效字元時,將該字元儲存在point
的位置,並且point
向前進(遞增),通過i
和point
以不同的規律遞增,從而找到出有效的字元並逐一覆蓋前面的要刪除的字元。
下面以簡單的圖示來描述這個演算法,假設要刪除的字元為a
:
起初i
和point
(為簡單起見,下面都用p
)都指向陣列的第乙個位置
在判斷後發現i
位置的字元就是a
,則進行下一輪迴圈,i
遞增,p
不動
在判斷後發現i
位置的字元不是a
,則將i
位置的b
,賦值給p
位置,然後i
和p
都遞增,這樣的話,原來要刪除的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逐個比較,若比較相同的話,則位置標號向後移,比較下乙個字元,出現第...