关于atoi函数的实现c++

运行不对,编译器不报错... 运行不对,编译器不报错 展开
 我来答
intehel
推荐于2016-09-02 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1780万
展开全部
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")

更多追问追答
追问
在不
能帮我看一下我写的吗。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式