请选择 进入手机版 | 继续访问电脑版

[C 语言] C++ atoi()函数用法案例详解

[复制链接]
查看68 | 回复8 | 2021-9-12 19:05:41 | 显示全部楼层 |阅读模式
目次

1 功能

atoi()函数将数字格式的字符串转换为整数范例 。比方 ,将字符串“12345”转换成数字12345。

2 格式

该函数的格式为

int atoi(const char* str)

此中 ,参数str是要转换的字符串,返回值是转换后的整数。

3 留意 事项

3.1 关于参数的留意 事项

在“2 格式”中提到,atoi()函数的参数是要转换的字符串。该字符串的格式为

[空格][符号][数字]

此中 ,空格可以是键盘中的空格字符或者是Tab字符;符号可以是表示正数的“+”,也可以是表示负数的“-”;数字即为数字字符串。以是 ,atoi()函数参数可以是

  1. “ +123”
复制代码

  1. “ -456”
复制代码

必要 留意 的是,空格和“+”可以省略。以是 ,atoi()函数参数还可以是

  1. “123”
复制代码

  1. “-456”
复制代码

3.2 关于返回值的留意 事项

假如 atoi()函数转换成功,则该函数的返回值是转换后的整型。假如 atoi()函数转换失败,比方 要转换的范例 超过了int表示的范围,假如 要转换的是正数,则返回INT_MAX(2147483647),假如 要转换的是负数,则返回INT_MIN(-2147483648)。代码如下所示

  1. str1 = " 3336402735171707160320";
  2. value1 = atoi(str1);
  3. if (INT_MAX == value1)
  4. {
  5. printf("要转换的值超出了int的上边界。\n");
  6. }
  7. str2 = " -3336402735171707160320";
  8. value2 = atoi(str2);
  9. if (INT_MIN == value2)
  10. {
  11. printf("要转换的值超出了int的下边界。\n");
  12. }
复制代码

必要 留意 的是,atoi()函数在stdlib.h中定义,以是 在使用 atoi()函数时,必要 包含该头文件。

atoi()函数当读取到参数中的'\0'字符时,克制 读取并返回。

3.3 判定 转换是否成功

固然 atoi()函数的参数和返回值中不包含转换是否成功的标志,但是可以通过体系 变量errno的值来判定 转换是否成功。

相干 链接:

体系 变量errno:errno 是记录体系 的末了 一次错误代码。代码是一个int型的值,在errno.h中定义。查看错误代码errno是调试程序的一个紧张 方法。

在调用atoi()函数时,假如 转换成功,则errno的值是0;假如 遇到 “3.2 关于返回值的留意 事项”中提到的超出范围错误时,errno的值将会被设置为ERANGE。

  1. if (errno == ERANGE)
  2. {
  3. printf("要转换的数字超出int范围.\n");
  4. }
复制代码

4 宽字符的转换

atoi()函数的宽字符串版本是_wtoi()函数。该函数的格式为

int _wtoi(const wchar_t* str);

其参数与返回值的含义与atoi()函数相似。

到此这篇关于C++ atoi()函数用法案例详解的文章就先容 到这了,更多相干 C++ atoi()函数用法内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的相干 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 击管虽您 | 2021-9-21 18:06:14 | 显示全部楼层
好帖子!
回复

使用道具 举报

avatar 人生如梦总人q | 2021-9-22 17:52:03 | 显示全部楼层
论坛的帖子越来越有深度了!
回复

使用道具 举报

avatar 小太阳823 | 2021-10-4 09:45:30 | 显示全部楼层
感谢admin楼主的推荐!
回复

使用道具 举报

avatar 俏蝶吹 | 2021-10-6 14:35:22 | 显示全部楼层
收藏了,很不错的内容!
回复

使用道具 举报

admin楼主人气很旺!
回复

使用道具 举报

avatar 方方圆圆272 | 2021-10-7 13:38:46 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar auqsio7413820 | 2021-10-8 16:47:06 | 显示全部楼层
求加金币!
回复

使用道具 举报

论坛的人气越来越旺了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则