zoukankan      html  css  js  c++  java
  • atoi()函数实现

    实现atoi()函数,在出错时返回0;

     1 int atoi(const char *str)
     2 {
     3     if((str == NULL) || (strlen(str) == 0)) {
     4         return 0;
     5     }
     6 
     7     int value = 0;
     8     int sign = 0;
     9     int index = 0;
    10     int minMark = 0;
    11     const int MAX = 2147483647;
    12     const int MIN = -2147483648;
    13     while(str[index] != '\0') {
    14         char c = str[index];
    15         if((c == '+') || (c == '-')) {
    16             if(sign == 0) {
    17                 sign = (c == '+' ? 1 : -1);
    18             }else {
    19                 return 0;
    20             }
    21         }else if((c >= '0') && (c <= '9')) {
    22             if(value > MAX / 10) {
    23                 return 0;
    24             }else if(value == MAX / 10) {
    25                 if(c - '0' > MAX % 10 + 1) {
    26                     return 0;
    27                 }else if((c - '0' == MAX % 10 + 1) && (sign == -1) && (minMark == 0)) {
    28                     minMark = 1;
    29                     value = value * 10 + MAX % 10;
    30                 }else if(c - '0' <= MAX % 10) {
    31                     value = value * 10 + c - '0';
    32                 }else {
    33                     return 0;
    34                 }
    35             }else{
    36                 value = value * 10 + c - '0';
    37             }
    38         }else {
    39             return 0;
    40         }
    41         index ++;
    42     }
    43     if(minMark == 1) {
    44         return MIN;
    45     }else if(sign == -1) {
    46         value *= -1;
    47     }
    48     return value;
    49 }
  • 相关阅读:
    Jenkins+ant循环执行jmeter文件
    Jmeter接口模版说明
    jenkins与远程服务器配置SSH免密登录
    xcode developer tools简介
    MySQL之模糊查询
    MySQL排名函数
    openblas下载安装与使用
    CVX安装使用
    AMD包下载及使用
    Python及相应软件安装
  • 原文地址:https://www.cnblogs.com/qwertwwwe/p/4480139.html
Copyright © 2011-2022 走看看