C/C++ 实现 atoi 函数

本文介绍了如何在C/C++中实现 atoi 函数,从原始版本出发,分析存在的问题,如输入类型、多位数、负数、小数及无效字符等,并提供修正后的完整实现,最后展示测试用例及运行结果。
摘要由CSDN通过智能技术生成

将一段字符串转换为整数数字,最基本的方法就是使用 atoi 函数。如果让我们自己实现一段 atoi 函数,需要注意的细节比较多。


原始版本

首先想到的就是字符类型之间的差值。可以直接使用字符相减得到差值。

int myAtoi(char* pstr)
{
    int ans = pstr[0] - '0';
    return ans;
}

看起来好像很简单,但是答案就是这样么?

存在问题
  • atoi 函数的输入是 const char* 类型,不是 char* 类型
  • 如果出现多位数
  • 如果出现负数
  • 如果出现小数
  • 如果输入的开头有着多余的空字符,或者产生字符串中间产生无效字符
修正版本

首先,我们需要将 const char* 类型转换为 char* 类型:
如果使用 C++,非常方便,有两种方法:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值