char转int可直接赋值获取ASCII值,如'A'得65;2. 数字字符转数值需减'0',如'7'- '0'得7;3. int转char直接赋值,如66得'B';4. 多位字符串用std::stoi转int。

在C++中,char 和 int 之间的转换是常见操作,尤其是在处理字符编码(如ASCII)或字符串解析时。下面介绍几种常用的 char 与 int 类型之间转换的方法。
char 转 int(获取字符的ASCII值)
char 类型本质上是整型,存储的是字符的ASCII码值。将 char 直接赋值给 int 变量即可得到其对应的整数值。
例如:char c = 'A'; int i = c; // i 的值为 65('A' 的 ASCII 值) cout << i << endl;
这种转换是隐式的,也可以显式使用类型转换:
int i = static_cast(c);
立即学习“C++免费学习笔记(深入)”;
数字字符转对应数值(如 '5' → 5)
如果 char 是一个表示数字的字符(如 '0'~'9'),想得到它代表的数值,需要减去 '0'。
例如:char c = '7'; int num = c - '0'; // num 的值为 7
这是因为 '7' 的ASCII是55,'0'是48,55-48=7。这是最常用的方式。
int 转 char(将整数转为字符)
将 int 转为 char 通常用于获取某个ASCII码对应的字符。
例如:int i = 66; char c = i; // c 为 'B' // 或者 char c = static_cast(i);
注意:如果 int 值超出 char 范围(通常是 -128~127 或 0~255),会发生截断或未定义行为,需谨慎处理。
多位数字字符串转 int(使用标准函数)
如果要将字符串(如 "123")转为 int,不能逐个 char 处理,应使用标准库函数。
常用方法包括:std::stoi("123")—— C++11 起支持,返回 intstd::atoi(c_str)
—— C 风格,需传入 const char*std::stringstream
—— 更安全,适合复杂解析
string str = "456"; int num = std::stoi(str); // num = 456
基本上就这些。char 到 int 主要是取ASCII码或字符数字转值,int 到 char 是逆向映射。对于多位数,用 stoi 等函数更合适。不复杂但容易忽略细节,比如字符 '0' 和数值 0 的区别。











