您的位置:首页 > 编程语言

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐