C++中將單個字符(字母、數字、符號)轉換為對應整數值,最直接方法是利用**字符類型本質是整數**,直接賦值給`int`變量即得ASCII/編碼值。
#include
using namespace std;
int main() {
char ch;
cout << "請輸入一個字符: ";
cin >> ch; // 讀取首個非空白字符
int asciiValue = ch; // 隱式轉換:char → int (ASCII碼)
cout << "對應整數值: " << asciiValue << endl;
return 0;
}
若需將**數字字符**轉為對應**數值**,需減去`'0'`:
char digitChar = '7';
int numericValue = digitChar - '0'; // 7
// 通用安全版
if (isdigit(ch)) {
int val = ch - '0';
}
| 函數 | 頭文件 | 用途 | 示例 |
|---|---|---|---|
| `int(ch)` / `(int)ch` | 內置 | 獲取字符編碼值 | `int('A')` → 65 |
| `atoi()` / `strtol()` | ` | 字符串轉整數 | `atoi("123")` → 123 |
| `stoi()` / `stol()` | ` | string轉整數,異常處理 | `stoi("456")` → 456 |
| `isdigit()` / `isalpha()` | ` | 字符分類判斷 | `isdigit('5')` → true |
string s = "12345";
int num = stoi(s); // 推薦 C++11
// 或舊式
char buf[20];
strcpy(buf, s.c_str());
int num2 = atoi(buf);
核心認知:C/C++中 `char` 本質是 1 字節整數,直接賦值給 `int` 即得編碼值;數字字符轉數值必須減 `'0'`。