#include <stdio.h>
#if 0
#include <stdlib.h>
#else
int atoi(const char *a)
{
int negative = 0;
int sign = 0;
int val = 0;
while (*a != '\0')
{
if (*a == '+' || *a == '-')
{
if (val != 0)
break; // atoi("2+3") = 2;
if (sign)
break; // atoi("++1") = 0;
sign = 1;
negative = (*a == '-');
}
else if (*a == ' ' || *a == '\r' || *a == '\n' || *a == '\t')
{
if (val != 0)
break; // atoi("123\n456") = 123;
if (sign)
break; // atoi("+ 123") = 0;
}
else if (*a >= '0' && *a <= '9')
val = val * 10 + (*a - '0');
else
break;
++a;
}
return negative ? -val : val;
}
#endif
int main(void)
{
char a[] = "123\n456";
int val = atoi(a);
printf("val: %d\n", val);
return 0;
}
atoi函数实现
最新推荐文章于 2024-04-19 01:00:00 发布