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;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我, 一介凡人。 苦涩又天真。 难看又真诚。 问风我的来处, 它沉默不语。 问云我的去向, 它下起雨来。 我在海里...
    aprisland阅读 1,472评论 0 0
  • 你惯常地,安静像泥人的脖子 骚动起来,好比发情期的睾丸 怎么你谦和得像封存已久的蜡像馆 你的皮肤,却好比一匹野马依...
    彭先生10阅读 2,744评论 0 0
  • 一个对象同时拥有section与row属性,同时获得section与row最小的那个对象
    今年27阅读 1,189评论 0 0

友情链接更多精彩内容