在沒有字串中介的情況下將Char 轉換為Int
程式設計師經常面臨從字串中提取數字的任務,以便在計算。雖然透過索引存取單一字元很簡單,但問題是:如何將這些字元轉換為整數?
傳統方法涉及使用 atoi() 函數,該函數將字串作為參數。但是,這需要先將每個字元轉換為字串。有沒有更有效的方法?
利用字元編碼
答案在於利用數字的字元編碼是連續的這一事實,範圍從48(對於' 0')到57(對於「9 ”)。這種一致性適用於各種編碼,包括 ASCII、UTF-x 和大多數其他編碼。
因此,數字字元的整數等效項就是該字元減去「0」或 48。
考慮以下程式碼片段:
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
此程式碼將整數值 1 賦給變數 i。或者,以下程式碼片段可以實現相同的結果:
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
雖然這兩種方法都能產生所需的結果,但從「0」中減去被認為更具可讀性和效率。
以上是如何在不使用字串的情況下有效地將字元數字轉換為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!