atoi 函数自己写代码实现
2012-05-17 23:38
302 查看
int my_atoi(const char* str)
{
assert(str != 0);
const unsigned int maxTest = INT_MAX / 10;
const unsigned int maxDigit = INT_MAX % 10;
int sign = 1;
unsigned int value = 0;
while( *str == ' ' || *str == '\t')
str++;
if( *str == '+' || *str == '-')
{
if(*str == '-')
sign = -1;
str++;
}
while( *str >= '0' && *str <= '9' )
{
unsigned int digit = *str - '0';
if( (value > maxTest) ||
(value == maxTest) && (digit > maxDigit ) )
{
return sign > 0 ? INT_MAX : INT_MIN;
}
value = value * 10 + digit;
str++;
}
return value * sign;
}
溢出的判断
返回0
{
assert(str != 0);
const unsigned int maxTest = INT_MAX / 10;
const unsigned int maxDigit = INT_MAX % 10;
int sign = 1;
unsigned int value = 0;
while( *str == ' ' || *str == '\t')
str++;
if( *str == '+' || *str == '-')
{
if(*str == '-')
sign = -1;
str++;
}
while( *str >= '0' && *str <= '9' )
{
unsigned int digit = *str - '0';
if( (value > maxTest) ||
(value == maxTest) && (digit > maxDigit ) )
{
return sign > 0 ? INT_MAX : INT_MIN;
}
value = value * 10 + digit;
str++;
}
return value * sign;
}
溢出的判断
返回0
相关文章推荐
- 自己编写代码实现atoi和itoa函数的功能
- c#调用js,以及js调用C#里的函数, c#自己生成js代码,实现对web的控制
- 【积累】C/C++中明明该用函数实现的功能,为啥非要自己写代码!
- atoi函数介绍与代码实现
- 自己实现的atof()和atoi()代码
- 【练习题】【C】atoi函数的代码实现
- NSLayoutConstraint-代码实现自己主动布局的函数使用方法说明
- 自己模拟strcmp库函数写的功能函数my_strcmp实现strcmp的功能,完整代码
- 经典面试编程题--atoi()函数的实现(就是模拟手算,核心代码就一句total = 10 * total + (c - '0'); 但是要注意正负号、溢出等问题)
- 自己编写代码实现atoi和itoa函数的功能
- 自己实现atoi函数功能,另加一个str2num有用的小程序
- 自己实现的atof()和atoi()代码 (转)
- 自己模拟strlen库函数写的功能函数my_strlen实现strlen的功能,完整代码
- C++ Studio (二) ----- atoi()函数的实现 (自己编写功能)
- 自己模拟strcpy库函数写的功能函数my_strcpy实现strcpy的功能,完整代码
- C#Linq技术中SelectMany(...)函数的内部实现的伪代码
- 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
- c++截取屏幕图片并保存(函数代码实现)
- atoi() 与 itoa()函数的内部实现
- 由于自己的需要搜集的一些关于 “ javascript实现图片的不间断连续滚动” 的代码