int myAtoi(char * str){
#define MAX_INT 0x7FFFFFFF
#define MIN_INT 0x80000000
long long tmp_res = 0;
//int res;
int is_negtive = 0;
char *p =str;
char *q;
while (*p == ' ' && *p != '\0')
p++;
if (*p == '-')
{
p++;
is_negtive = 1;
}
while (*p != '\0' && (*p >= '0' && *p <= '9'))
{
p++;
}
if (p == str)
return 0;
q = p - 1;
if (*q == '-' || *q == ' ')
return 0;
long long multi = 1;
while (*q >= '0' && *q <= '9' && q >= str)
{
tmp_res += multi * (*q-'0');
multi *= 10;
if (multi > MIN_INT && is_negtive)
return MIN_INT;
if (multi > MAX_INT && !is_negtive)
return MAX_INT;
q--;
}
if (is_negtive)
return (int)tmp_res*(-1);
return (int)tmp_res;
}
myAtoi
最新推荐文章于 2024-07-23 14:04:43 发布