关闭

atoi实现

标签: atoileetcode
394人阅读 评论(9) 收藏 举报
分类:

atoi()函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace()函数来检测),直到遇上数字或正负符号才开始做转换,后续再遇到非数字或字符串结束时(‘\0’)才结束转换,并将前面部分的转换结果返回。

#define INT_MAX 0x7fffffff        //2147483647
#define INT_MIN 0x80000000 //-2147483648
int atoi(const char *str) 
{
    if (str == NULL)
    {
        return 0;
    }
    if (str[i] == '\0')
    {
        return 0;
    }
    int i = 0;
    while (str[i] == ' ')
    {
        i++;
    }
    int flag = 1;
    if (str[i] == '+')
    {
        i++;
    }
    else if (str[i] == '-')
    {
        flag = -1;
        i++;
    }
    long long sum = 0;
    while (str[i] != '\0')
    {
        if (str[i] >= '0' && str[i] <= '9')
        {
            sum = sum * 10 + str[i] - '0';
        }
        else
        {
            return sum;
        }
        if (sum > INT_MAX)
        {
            return flag > 0 ? INT_MAX : INT_MIN;
        }
        i++;
    }
    return sum;
}
2
0

猜你在找
深度学习基础与TensorFlow实践
【在线峰会】前端开发重点难点技术剖析与创新实践
【在线峰会】一天掌握物联网全栈开发之道
【在线峰会】如何高质高效的进行Android技术开发
机器学习40天精英计划
Python数据挖掘与分析速成班
微信小程序开发实战
JFinal极速开发企业实战
备战2017软考 系统集成项目管理工程师 学习套餐
Python大型网络爬虫项目开发实战(全套)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16067次
    • 积分:535
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:0篇
    • 译文:0篇
    • 评论:21条
    联系方式

    公司:深信服科技股份有限公司


    所在地:中国-广东省-深圳市


    QQ交流群:165650716


    文章分类
    最新评论