atoi函数和std::stoi函数的不同点

atoi函数和std::stoi函数的不同点

出处不同

  • atoi()函数是C标准库函数,头文件为#include<stdlib.h>。同类型函数还包括atol()atof()strtol()strtof()等;
  • std::stoi()函数是C++11开始加入的STL标准模版库的函数,头文件为#include<string>。同类型函数还有std::stol()std::stoll()

功能不同

  • atoi()
    • 会跳过前面的空白字符(包括空格,tab符号等),直到遇到第一个非空字符,并在遇到下一个非数字字符时结束转换;
    • 转换的内容为正负符号和数字字符;
    • 并且返回值为十进制;
  • std::stoi()
    • 会跳过最前面的空白字符(包括空格,tab符号等),直到遇到第一个非空字符,并在遇到下一个非数字字符时结束转换;
    • 转换的内容为正负符号和数字字符;
    • 可以指定开始转换的pos;
    • 可以转换成十进制,八进制和十六进制;

异常处理不同

  • atoi()函数在转换时,如果遇到入参str不能转换或者str为空字符串时,返回值为0,不会抛出异常;
  • std::stoi()函数在转换时,如果入参str是字母或者空字符串而无法转换成数字时,会抛出std::invalid_argument异常,使用者必须手动处理异常,否则会造成程序crash;

转载于:https://www.cnblogs.com/dongshanzhishi/p/11331888.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值