數字、字符、字符串? | C++ 與 Python 中的常用轉換函數
計算機底層是一堆邏輯電路,記錄信息只能以數值的形式。
因此對于一個字符 a ,計算機記錄其為值 97 。
這個值與字符的對應關系是人們約定好的,這里使用的對應表為 ASCII Table 。
在 ASCII Table 里, a 對應 97 , b 對應 98 ... 字符 1 對應數值 49 。
之所以寫這篇筆記是因為一些算法題的要求,比如,我們需要統(tǒng)計 26 個小寫英文字母出現頻率,在算法題中,完全沒必要開一個哈希表,開一個 26 長度的整數數組就行。
- int cnt[26];
 
當我們讀入一個字符時,則進行一次強制類型轉換,就實現了哈希表功能。
- char c;
 - cin >> c;
 - cnt[c - 'a'] ++ ;
 
當讀入的數字是 'a' 時, 'a' - 'a' == 0 ,則實現了哈希的功能。
我不禁發(fā)問:
- 上述過程的逆過程如何實現呢?比如給我數值 97 ,我如何才能得到其在 ASCII 表里對應的字符 'a' ?
 - 如果在字面上轉換呢?
    
- 比如給我數值 97 ,我如何才能得到字符串 "97" ?
 - 比如給我字符串 "97" ,我如何才能得到數值 97 ?
 
 
不熟悉的話,做題時容易被卡脖子。在此總結 C++ 和 Python。
C++
數字到字符(ASCII碼)
- // 強制轉換,根據 ASCII 碼
 - int tmp = 97;
 - char ac = tmp;
 - cout << ac << endl; // 輸出 a
 
數字到字符串(表面值)
- int tmp = 97;
 - string as = to_string(tmp);
 - cout << as << endl; // 輸出 97
 
字符到數字(ASCII碼)
- char a;
 - cin >> a;
 - int num1 = a - '0';
 - int num2 = a - 'A';
 - int num3 = a - 'a';
 
字符串到數字(表面值)
- string b;
 - cin >> b;
 - int num4 = stoi(b);
 - float num5 = stof(b);
 - double num6 = stod(b);
 - long double num7 = stold(b);
 
Python
數字到字符(ASCII碼)
- # 強制轉換,根據 ASCII 碼
 - tmp: int = 97
 - ac: str = chr(tmp)
 - print(ac) # 輸出 a
 
數字到字符串(表面值)
- tmp: int = 97
 - a_s: str = str(tmp);
 - print(a_s) # 輸出 97
 
字符到數字(ASCII碼)
- a: str = 'a'
 - num: int = ord(a)
 - print(num)
 
字符串到數字(表面值)
- b: str = "123"
 - c: str = "123.45"
 - num2: int = int(b)
 - num3: float = float(c)
 - print(num2) # 123
 - print(num3) # 123.45
 















 
 
 



 
 
 
 