美文网首页
8.字符串转整数 (atoi)

8.字符串转整数 (atoi)

作者: 无名的殇 | 来源:发表于2018-05-25 10:20 被阅读0次

    题目


    思路
    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;
    }
    

    相关文章

      网友评论

          本文标题:8.字符串转整数 (atoi)

          本文链接:https://www.haomeiwen.com/subject/ldjyjftx.html