直接赋值获取ASCII码:char c = 'A'; int num = c; 得到65。2. 数字字符转整数:c - '0'将'7'转为7。3. 字符串用std::stoi转整数。4. 转换前应检查字符是否为'0'-'9'。

在C++中,将char转换为整数有多种方法,具体取决于你想要的结果:是获取字符对应的ASCII码值,还是将表示数字的字符(如'5')转换成对应的整数值(如5)。下面是几种常见的实现方式。
1. 获取字符的ASCII码值
每个char类型变量本质上是一个小整数,代表字符的ASCII(或Unicode)编码。直接赋值给int即可得到其编码值。
- char c = 'A';
- int num = c; // num 的值为 65
这适用于任何字符,比如'0'、'a'、'#'等,都会返回其对应的ASCII码。
2. 将数字字符转为对应整数
如果字符是'0'到'9'之间的数字字符,想得到其数学值(例如'7' → 7),需要减去字符'0'的ASCII码。
立即学习“C++免费学习笔记(深入)”;
- char c = '7';
- int num = c - '0'; // num 的值为 7
这种方法利用了数字字符在ASCII表中连续排列的特性,'0'到'9'的编码是48到57,所以c - '0'相当于c - 48。
3. 使用标准库函数转换字符串中的数字字符
如果你有一个字符数组或字符串,想整体转换为整数,可以使用std::stoi、atoi等函数。
- char str[] = "123";
- int num = std::stoi(str); // 转换为整数 123
注意:这种方式适用于整个数字字符串,不是单个字符。对于单个字符,推荐使用减'0'的方法。
4. 安全性检查建议
在做字符转数字时,最好先判断字符是否为有效数字字符,避免非法输入。
- char c = '8';
- if (c >= '0' && c
- int num = c - '0';
- }
这样可以防止非数字字符(如'z')被错误转换。
基本上就这些常见用法。根据实际需求选择合适的方法,单个数字字符用c - '0'最直接高效。











