
在C++中,字符与数字之间的转换是编程中常见的操作。不同场景下需要使用不同的方法来实现安全、高效的转换。以下是几种常用的字符转数字以及数字转字符的方法汇总。
1. 字符转数字(单个字符)当处理的是表示数字的字符(如 '0' 到 '9')时,可以通过减去字符 '0' 的ASCII值来得到对应的整数值。
示例:char c = '5';
int num = c - '0'; // num 的值为 5
原理:字符 '0' 的ASCII码是48,'5' 是53,相减得5。
注意:此方法仅适用于单个数字字符,且必须确保字符在 '0'~'9' 范围内,否则结果无意义。
2. 字符串转数字对于由多个字符组成的数字字符串(如 "123"),有以下几种常用方式:
HyperWrite
AI写作助手帮助你创作内容更自信
54
查看详情
① 使用 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++字符与数字转换方法汇总的详细内容,更多请关注知识资源分享宝库其它相关文章!
相关标签: c语言 c++ 格式化输出 c语言 String Float const 字符串 char int double ASCII 大家都在看: c++中如何读取和写入CSV文件_CSV文件流式读写操作实践 c++如何查找字符串中的子串_c++子串查找函数与算法 c++中怎么避免内存泄漏_C++内存泄漏检测与防治策略 如何在C++中处理命令行参数_C++命令行参数解析方法 c++中如何获取文件最后修改时间_文件系统时间属性访问方法






发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。