在程式設計中,經常會遇到需要將一串數字轉換為單一整數的情況。雖然透過索引存取每個字元很簡單,但將這些字元轉換為整數似乎很有挑戰性。
流行的 atoi() 函數需要一個字串參數,從而產生了將每個字元轉換為字串然後使用 atoi 的想法()。然而,還有一種更直接、更有效率的方法。
關鍵是要認識到數字的字元編碼是連續的。在 ASCII、UTF-x 和大多數其他編碼系統中,「0」的編碼為 48,而「9」的編碼為 57。
利用這一點,您可以提取數字的整數值透過從 '0' 或 48 中減去該字元。例如:
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
這是等效的to:
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
雖然兩個表達式產生相同的結果,但第一個選項(c - '0') 通常被認為更具可讀性。
以上是如何在 C/C 中有效地將單一數字從字串轉換為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!