小甲鱼 发表于 2016-2-6 13:07:20

atoi -- 将字符串类型转换为整型

atoi 函数文档

函数概要:

atoi 函数将字符串中的表示数值的字符解析为对应的整型数值。

解析从第一个非空白字符开始,起始位置可以是一个可选的字符,用于表示正号('+')或负号('-')。后边跟随若干表示十进制数字的字符,如果检测到表示非数字的字符,那么结束解析。最后返回已经成功解析的数字(整型)。

如果字符串的第一个非空白字符表示的不是一个有效的数字,或者字符串中根本就不包含表示数字的字符,甚至只是一个空字符串……这样的话,返回值就只能是 0。


函数原型:

#include <stdlib.h>
...
int atoi(const char *str);

参数解析:


参数含义
strC 语言标准字符串


返回值:

如果函数调用成功,返回值是字符串转换后对应的整型数值;

如果转换的结果超出一个整型的存放范围,那么会导致一个未定义的行为(当你的程序可能存在这种风险的时候,请使用 strtol 函数代替)。


演示:

#include <stdio.h>
#include <stdlib.h>

int main()
{
      printf("%d\n", atoi("FishC123"));
      printf("%d\n", atoi("123FishC"));
      printf("%d\n", atoi("   123"));
      printf("%d\n", atoi("-123.45 "));
      printf("%d\n", atoi("123456789999999999"));

      return 0;
}


版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!

一切皆为虚幻 发表于 2016-6-25 08:54:23

小甲鱼,我给你的留言有看到吗

mhp0114 发表于 2017-2-14 21:31:40

get it

1762075716 发表于 2017-7-14 16:10:01

就是把字符串中的非数字部分丢掉是吗{:10_257:}

风过无痕丶 发表于 2017-11-22 16:52:44

第五个输出有点晕啊。。 难道第五个返回的是 该数据类型的最大值。。

bailiang0920 发表于 2018-3-21 11:37:45

使用要求好多。。。

Julia999 发表于 2018-11-19 11:41:20

get it

伊泽塔w 发表于 2018-12-12 11:11:05

1

小白要成长 发表于 2019-3-13 15:43:02

1003826976 发表于 2019-6-6 16:24:40

1

Seawolf 发表于 2019-6-20 03:59:09

谢谢分享啊

zyy1994 发表于 2019-6-29 17:31:56

没看懂呢,参数类型是字符串?getchar()的结果可以作为输入吗

小脑斧 发表于 2019-7-12 14:20:59

风过无痕丶 发表于 2017-11-22 16:52
第五个输出有点晕啊。。 难道第五个返回的是 该数据类型的最大值。。


2^31-1(int 占用4字节,32比特位)

aurora54204781 发表于 2019-8-25 14:21:17

一切皆为虚幻 发表于 2016-6-25 08:54
小甲鱼,我给你的留言有看到吗

卢本伟

chenyu940219 发表于 2019-11-1 15:06:36

小甲鱼好棒的

鱼C钰 发表于 2019-11-25 21:04:51

{:10_291:}

程序猿的爱情 发表于 2020-2-18 21:02:16

非空白字符的定义是什么求解

wanting-for 发表于 2020-2-19 12:26:46

程序猿的爱情 发表于 2020-2-18 21:02
非空白字符的定义是什么求解

例如英文字母

以后and未来 发表于 2020-3-12 08:57:44

{:10_265:}{:10_245:}{:10_284:}{:10_299:}

2717672416 发表于 2020-3-24 11:27:39

看不懂啊
页: [1] 2 3 4
查看完整版本: atoi -- 将字符串类型转换为整型