在前面練習過的題目中,我們已經能建立新字串並用指標操作字元,今天要進一步練習「如何判斷與轉換字元內容」,這是所有字串處理題的基礎。
🧠 LeetCode 709. To Lower Case 題目說明
給定一個字串 s,請將所有英文字母轉成小寫
範例
輸入:s = "Hello"
輸出:"hello"
輸入:s = "LOVELY"
輸出:"lovely"
🧩 解題思路
1️⃣ 複製字串以建立新結果
題目要求回傳新字串,不能直接修改輸入,因此要配置新的字元陣列。
2️⃣ 使用指標遍歷原字串
透過 *(s + i) 逐一取得字元,並檢查是否是大寫英文字母。
3️⃣ 轉換大寫成小寫
在 ASCII 表中,'A' 到 'Z' 的範圍是 65~90,
而 'a' 到 'z' 是 97~122。
可以利用 +32 的差距將大寫轉為小寫。
4️⃣ 補上結尾字元 '\0'
同樣別忘了 C 語言字串的結尾符號。
這題讓我更理解字元與 ASCII 編碼之間的關係,也熟悉了如何用指標直接操作字串
透過 *(s + i) 取代 s[i],可以更清楚看到字串實際上是「連續記憶體的位址序列」。