字符转数字可通过减'0'实现,如'5'-'0'得5;2. 字符串转数字可用std::stoi、std::stol等函数;3. 数字转字符加'0',转字符串用std::to_string。

在C++中,字符与数字之间的转换是编程中常见的操作。不同场景下需要使用不同的方法来实现安全、高效的转换。以下是几种常用的字符转数字以及数字转字符的方法汇总。
当处理的是表示数字的字符(如 '0' 到 '9')时,可以通过减去字符 '0' 的ASCII值来得到对应的整数值。
示例:char c = '5';
int num = c - '0'; // num 的值为 5
原理:字符 '0' 的ASCII码是48,'5' 是53,相减得5。
注意:此方法仅适用于单个数字字符,且必须确保字符在 '0'~'9' 范围内,否则结果无意义。
立即学习“C++免费学习笔记(深入)”;
对于由多个字符组成的数字字符串(如 "123"),有以下几种常用方式:
① 使用 std::stoi(C++11起)
将字符串转换为 int 类型。
std::string str = "123";
int num = std::stoi(str);
② 使用 std::stol / std::stoll
分别用于 long 和 long long 类型。
long lnum = std::stol("123456");
long long llnum = std::stoll("9876543210");
③ 使用 stringstream
兼容性好,适合老标准或复杂格式解析。
std::string str = "456";
std::stringstream ss(str);
int num;
ss >> num;
④ 使用 atoi(来自C语言)
简单但不安全,不推荐在现代C++中使用,因为它不抛异常,错误难检测。
const char* str = "789";
int num = atoi(str);
① 单个数字转字符
只需加上 '0' 即可。
int num = 7;
char c = num + '0'; // c 的值为 '7'
② 数字转字符串
推荐使用 std::to_string。
int num = 123;
std::string str = std::to_string(num);
支持 int、long、float、double 等多种类型。
③ 使用 stringstream
适用于需要格式化输出的场景。
std::stringstream ss;
ss
std::string str = ss.str();
std::stoi 等函数在转换失败时会抛出异常,建议用 try-catch 包裹。
try {
std::string str = "abc";
int num = std::stoi(str);
} catch (const std::invalid_argument& e) {
std::cout
} catch (const std::out_of_range& e) {
std::cout
}
这样可以避免程序因非法输入而崩溃。
基本上就这些常用方法。根据实际需求选择合适的方式,优先使用 std::stoi 和 std::to_string,简洁又安全。
以上就是c++++中怎么把字符转化为数字_c++字符与数字转换方法汇总的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号