关于atoi函数的实现c++
发布网友
发布时间:2023-07-27 02:43
我来回答
共1个回答
热心网友
时间:2024-11-04 03:27
namespace xx
{
int atoi(const char *p)
{
bool negative = false;
int value = 0;
if(p == NULL || p[0] == 0)
return 0;
else if(p[0] == '-')
{
negative = true;
++p;
}
else if(p[0] == '+')
{
++p;
}
while(*p >= '0' && *p <= '9')
{
value = value * 10 + *p - '0';
++p;
}
return negative?-value:value;
}
}
int main(int argc, char* argv[])
{
printf("%d\n",xx::atoi("12345"));
printf("%d\n",xx::atoi("-12345"));
printf("%d\n",xx::atoi("012345"));
printf("%d\n",xx::atoi("-012345"));
printf("%d\n",xx::atoi("a12345"));
printf("%d\n",xx::atoi("012345.90000"));
return 0;
}
说明:
1、为了防止与标准的atoi冲突,所以将自己实现的atoi放到了xx命名空间;
2、没有处理溢出的情况,例如atoi("12345678901234567890")