using namespace std;
typedef enum Myenum
{
VALID//feifa
,INVID//hefa
}Status ;
Status stat = INVID;
int my_atoi(const char* string)
{
int Ret_sign = 0;
int Integet_sign = 1;
long long sum = 0;
assert(string != NULL);
/*
* 跳过空格字符
*/
while (isspace(*string) != 0)
{
string++;
}
/*
* 判断正负号;
* 如果是正号,指针指向下一个字符
* 如果是负号,Integet_sign置为-1,然后指向下一个字符
*/
if (*string == '-')
Integet_sign = -1;
if (*string == '-' || *string == '+')
string++;
/*
* 把数字字符串转化成整数
*/
//while (*string != '\0')
//{
// if (isdigit(*string))
// {
// sum = Integet_sign*sum * 10 + *string - '0';
// if (sum > INT_MAX || sum < INT_MIN)
// {
// sum = 0;
// break;
// }
// }
// else
// {
// sum = 0;
// break;
// }
// string++;
//}
//if (*string == '\0')
//{
// stat = VALID;
//}
//return sum;
while (isdigit(*string) && *string != '\0')
{
Ret_sign = Ret_sign * 10 + *string - '0';
if (Ret_sign > INT_MAX)
return INT_MAX;
if (Ret_sign < INT_MIN)
return INT_MAX;
string++;
}
Ret_sign = Integet_sign*Ret_sign;
return Ret_sign;
模拟实现atoi函数
最新推荐文章于 2024-03-24 11:01:14 发布