C语言——模拟实现库函数atoi

1. atoi

atoi:将字符串转换为整数。

1. 头文件 <stdlib.h>

2. 声明:

0de68cb2c03c42d69f19ebfe98464db3.png

1. 如果字符串开始有空格,直接跳过。

2. +  -   会影响打印的数字的正负(只能出现在跳过空格字符之后的字符串的首位,且只能有一个,否则返回0)

3. 只打印数字字符,遇到非数字字符就停止。

4. 如果没有读取到数字,返回0。

5. 如果转换之后的数字大于 INT_MAX ,就输出 INT_MAX 

   如果转换之后的数字小于 INT_MIN ,就输出 INT_MIN

2. isspace

检查字符是否为空格。

1. 头文件 <ctype.h>

2. 声明:

d74b2e7b1f29c825bcded3496dac600d.png

 int c :将需要检查的字符 c 强制转换成  int  类型或  EOF

如果 c 确实是空格字符,则返回不同于零的值( true),否则返回0(false)。

3f088bea0b8de9beac24233a2a06e6cf.png

b7560fa7989d563c3f977f576f26440b.png

3. isdigit

检查字符是否为十进制数字字符。

1. 头文件 <ctype.h>

2. 声明:

07169276effe17b6271f54b231e1107b.png

 int c :将需要检查的字符 c 强制转换成  int  类型或  EOF

 如果 c 确实是十进制数字字符,则返回不同于零的值( true),否则返回0(false)。

600ffa7b39ac9d993c671937b28f2f6e.png

4.  预定义的宏 INT_MAX  和  INT_MIN

  INT_MAX 和  INT_MIN 是 C语言 的两个预定义宏,代表了整型变量能够存储的最大正整数2147483647( 2^31 − 1 )和最小负整数 -2147483648 ( -2^31 )。这个值是相对于二进制补码表示的,也就是说,负数的范围比正数大 1,这两个宏在头文件 <limits.h> 中定义。

溢出问题

  在整型变量中,所有超过INT_MAX和INT_MIN数,都会出现溢出,出现 warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型 long long 占8字节64位。

 

· 最轻微的上溢是 INT_MAX + 1,结果是 INT_MIN。
· 最严重的上溢是 INT_MAX + INT_MAX,结果是 -2。
· 最轻微的下溢是 INT_MIN - 1,结果是是 INT_MAX。
· 最严重的下溢是 INT_MIN + INT_MIN,结果是 0。

47d027ac44ce5e7e2514201341c61452.png

5. 模拟实现atoi

5dc575f5dfc55a3329d9a9ff297c7db3.png

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值