發表文章

目前顯示的是有「字串處理」標籤的文章

[程式設計] 17. Letter Combinations of a Phone Number

圖片
前言 這題是 LeetCode 17 題,要使用遞迴的技巧,題目請點 這兒 。 LeetCode 17 題的題目說明 這題是說舊手機的鍵盤上除了數字之外,還有英文字母。例如鍵盤 2 上有 "abc" 三個字母,鍵盤 3 上有 "def" 三個字母。 給一些數字,例如 23,列出可能的字串組合。在這個例中,可以列出 ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] 這些組合。 這題如果限定給的數字有幾個,那可以用巢狀迴圈處理掉。但因為數字的個數未知,因此用「遞迴」是較好的作法。 這題所需要的遞迴技巧不高,是練習遞廻的好題目。

[程式設計] C++ 的字串切割

簡介 C++的字串切割,我看過解釋最詳細的是 這篇 。推薦大家看看。 字串切割是撰寫程式中常有的需求,舉例來說 將一個字串依空白切割成數個子字串。如 "15 19 12" 切成 "15","19" 以及 "12"。 將字串依規定的符號切割成數個子字串。如 "15,19,12",切成 "15","19" 以及 "12",這是切割符號為逗點。 將字串依規定的符號切割成數個子字串,但這個符號可以有 多種 。例如 "15,19!12",切成 "15","19" 以及 "12",這是切割符號為 , 以及 !。 這篇文章,要談的,是最後一種的切割方式。

[C++] 使用 transform 函式將字串中的字元都轉成小寫

C++的字串函庫沒有提供將字元轉成大寫,或是小寫的功能,所以只能呼叫 algorithm 函式庫中的 transform 函式來完成。底下是個示範。

[C++]在 cin 後呼叫 getline 所遇到的問題

圖片
在 C++ 中,使用 cin 讀資料後,再用 getline 讀字串,就會遇到 buffer 沒有清空的問題。例如底下的程式碼: 這個例子中,程式先讀一個整數,將之放入 value 變數中。接著讀 value 個字串。所以要是 value 為 2 時,應該就要讀取 2 個字串。但在這個例子中,很奇怪就只會讀 1 個字串。