首页 > 后端开发 > C++ > 正文

c++中怎么把字符转化为数字_c++字符与数字转换方法汇总

冰火之心
发布: 2025-09-24 13:02:02
原创
344人浏览过
字符转数字可通过减'0'实现,如'5'-'0'得5;2. 字符串转数字可用std::stoi、std::stol等函数;3. 数字转字符加'0',转字符串用std::to_string。

c++中怎么把字符转化为数字_c++字符与数字转换方法汇总

在C++中,字符与数字之间的转换是编程中常见的操作。不同场景下需要使用不同的方法来实现安全、高效的转换。以下是几种常用的字符转数字以及数字转字符的方法汇总。

1. 字符转数字(单个字符)

当处理的是表示数字的字符(如 '0' 到 '9')时,可以通过减去字符 '0' 的ASCII值来得到对应的整数值。

示例:

char c = '5';
int num = c - '0'; // num 的值为 5

原理:字符 '0' 的ASCII码是48,'5' 是53,相减得5。

注意:此方法仅适用于单个数字字符,且必须确保字符在 '0'~'9' 范围内,否则结果无意义。

立即学习C++免费学习笔记(深入)”;

2. 字符串转数字

对于由多个字符组成的数字字符串(如 "123"),有以下几种常用方式:

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 396
查看详情 代码小浣熊

① 使用 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);

3. 数字转字符或字符串

① 单个数字转字符
只需加上 '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();

4. 处理转换异常

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++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号