iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Software Development

用leetcode系統化學習C語言系列 第 25

判斷字串中特定條件

  • 分享至 

  • xImage
  •  

在前面練習過的題目中,我們已經能建立新字串並用指標操作字元,今天要進一步練習「如何判斷與轉換字元內容」,這是所有字串處理題的基礎。

🧠 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 語言字串的結尾符號。

https://ithelp.ithome.com.tw/upload/images/20251009/20169489taeu7R0fS6.png
這題讓我更理解字元與 ASCII 編碼之間的關係,也熟悉了如何用指標直接操作字串
透過 *(s + i) 取代 s[i],可以更清楚看到字串實際上是「連續記憶體的位址序列」。


上一篇
字串與指標的結合
系列文
用leetcode系統化學習C語言25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言