atoi 实现是将一个字符串转换为一个整数
这个函数会丢弃起始的空白字符直到遇到第一个非空白字符; 然后, 从这个字符开始, 起始可有一个正负号字符, 以及后续尽可能多的数字, 然后将其翻译成一个数值
字符串可以在形成整数的字符子串后包含其他字符, 这些将会被忽略并且不会对函数行为产生影响
如果字符串中的起始非空白字符序列不是一个有效的整数, 或者没有这样的序列存在; 因为无论是空字符串还是只包含空白字符的字符串, 都不会执行转换
如果没有有效的转换执行, 将返回 0
- 仅空格字符 ' ' 被认为是空白字符
- 假定我们在一个只能存储范围在
$[-2^{31}, 2^{31} - 1]$ 的 32 位有符号整数的环境中处理; 如果数值超出这个范围, 将返回 INT_MAX($2^{31} - 1$ ) 或 INT_MIN ($-2^{31}$ )
输入: "42"
输出: 42
输入: " -42"
输出: -42
说明: 第一个非空白字符是负号 '-', 尽可能获取的后续多的数值是 42.
输入: "4193 with words"
输出: 4193
说明: 在数字 '3' 会停止转换, 因为下一个字符不是一个数字
输入: "words and 987"
输出: 0
说明: f第一个非空白字符是 'w', 这不是一个数字或者正负号; 因此没有有效的转换被执行
输入: "-91283472332"
输出: -2147483648
Explanation: 数字 "-91283472332" 超出了 32 位有符号整数的范围, 因此 INT_MIN 会被返回