int 是 integer 的縮寫,表示整數資料。 string 表示字串。 在計算機中,這是兩種不同型別的資料,但在一定程度上,它們可以相互轉換。
string 是字元陣列的另乙個名稱,它由單個字元組成。 在計算機中,單位元組字元分為單位元組字元和多位元組字元,前者如英文字母和英式標點符號,後者如漢字和中文標點符號。
乙個位元組是 8 位,最高的位代表空閒位,其餘 7 位用於編碼 128 個符號。 因此,ASCII 查詢表中的 128 個字元可以用 int 資料表示,因為每個字元都有相應的序號。 乙個雙位元組是16位,也在int資料的取值範圍內,但是因為記憶體位址單元是8位,所以不能直接轉換,因為它涉及到如何在兩個位址單元中拼接資料。
此外,對於內容為數字的字元,它們不傾向於使用其字元編碼的相應整數資料值作為將字串轉換為整數資料的結果,而是更喜歡破譯引號的操作,例如,“1”的轉換結果是 1 而不是其對應的字符號 49, 這在由多個數字字元組成的字串中很常見。
1. int 轉字串
從 int 轉換為字串就像在 int 資料兩邊加上引號一樣簡單。 如果要使用庫函式,可以使用 to string 函式和 sprintf 函式,如下圖所示
如果你不想使用乙個開箱即用的函式,而是自己編寫乙個函式來完成轉換,那麼我可以提供乙個演算法思路,使用字元 0 一點一點地完成數字到字元的轉換。
上述示例**中使用的反向函式位於演算法庫中。
2. 字串轉int
由於字串內容不僅有數字符號,還有文字符號和標點符號,因此必須單獨處理。 對於要轉換為 int 資料的帶有非數字符號的字串,要求必須為單個單位元組字元具體而言,必須位於 ASCII 查詢表中的符號,然後將結果轉換為 ASII 查詢表中該符號的序號。
對於帶有數字符號的字串,可以有多個字元。 如果您使用開箱即用的庫函式,您可以呼叫 stoi 函式這個函式的使用比較簡單,只需要將要轉換的字串作為引數傳遞到函式中,函式的正常返回值就是轉換結果。 而且函式名的記憶也比較容易記住,stoi其實就是這樣string to int 的縮寫
類似地,如果你想實現乙個將數值字串轉換為整數資料的函式,那麼我提供了乙個演算法思路,即將每個字串陣列作為字元陣列迴圈出來,以區分字元 0,然後將其組織成以某種形式返回的新整數資料。