8.字符串转整数 (atoi)

题目


思路
1.遍历字符串,当字符不符合条件时结束
2.处理特殊情况
3.组合数字
代码

int myAtoi(char* str) {
    
    int str_len = strlen(str);
    int i, flag = 0;
    int result = 0, cur = 0;
    char c;

    for (i = 0; i < str_len; i++) {
        c = str[I];
        //标示符号和是否开始数字
        if (c == '+' && !flag ) { 
            flag = 1;
            continue;
        }   
        else if (c == '-' && !flag) {
            flag = -1; 
            continue;
        }   
        else if (c >= '0' && c <= '9') {
            if (flag != -1)  {
                flag = 1;
            }   
            //记录数字
            cur = result * 10 + (c - '0');
        }
        //处理空格和结束
        else if (c == ' ' && !flag){
            continue;
        }   
        else {
            break;
        }   

        //越界判断
        if ((cur - c + '0') / 10 != result || cur < 0) {
            if (flag == 1) {
                return INT_MAX; 
            }   
            else if (flag == -1) {
                return INT_MIN; 
            }   
        }   
        else  {
            result = cur;
        }   
    
    }
    //负数
    if (flag == -1) {
        result = 0 - result;
    }   
    return result;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,129评论 0 7
  • 如果你精神不好,推荐你去练瑜伽。 自从练完瑜伽后,精神就好多了,嘿嘿(º﹃º )
    小样_8418阅读 171评论 0 0
  • 此前不过是心在宕动,之后却是灵魂在沉陷。你会发现,人生最难熬的痛苦,就是你跟本该远离的东西纠缠在了一起。
    墨心imo阅读 427评论 0 0
  • 虽然这只是一个较为常规的“我的”界面,可以设计的东西不多,我主要使用黄金分割的方法让画面更和谐。把每一个功能模块想...
    小和阅读 164评论 0 0