2enumStatus{KValid=0,KInvalid};3intg_nStatus=KValid;4longStrToIntCore(char*str,boolminus)5{6longnum=0;7while(*str!='\0')8{9if(*str>'0'&&*str<'9')10{11intflag=minus?-1:1;12num=num*10+flag*(*str-'0');13if((!minus&&" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

模仿c的字符轉整數函數 atoi

系統 1700 0
      
         1
      
       #include<stdio.h>


      
         2
      
      
        enum
      
       Status {KValid = 
      
        0
      
      
        , KInvalid};


      
      
         3
      
      
        int
      
       g_nStatus =
      
         KValid;


      
      
         4
      
      
        long
      
       StrToIntCore(
      
        char
      
       *str,
      
        bool
      
      
         minus)


      
      
         5
      
      
        {


      
      
         6
      
      
        long
      
       num = 
      
        0
      
      
        ;


      
      
         7
      
      
        while
      
       (*str !=
      
        '
      
      
        \0
      
      
        '
      
      
        )


      
      
         8
      
      
            {


      
      
         9
      
      
        if
      
       (*str >
      
        '
      
      
        0
      
      
        '
      
       && *str<
      
        '
      
      
        9
      
      
        '
      
      
        )


      
      
        10
      
      
                {


      
      
        11
      
      
        int
      
       flag = minus ? -
      
        1
      
      :
      
        1
      
      
        ;


      
      
        12
      
                   num = num * 
      
        10
      
       + flag*(*str - 
      
        '
      
      
        0
      
      
        '
      
      
        );


      
      
        13
      
      
        if
      
       ((!minus && num > 
      
        0x7FFFFFFF
      
      )||(minus && num <(signed 
      
        int
      
      )
      
        0x80000000
      
      
        ))


      
      
        14
      
      
                    {


      
      
        15
      
                       num = 
      
        0
      
      
        ;


      
      
        16
      
      
        break
      
      
        ;


      
      
        17
      
      
                    }


      
      
        18
      
                   str++
      
        ;


      
      
        19
      
      
                }


      
      
        20
      
      
        else
      
      
        21
      
      
                {


      
      
        22
      
                   num = 
      
        0
      
      
        ;


      
      
        23
      
      
        break
      
      
        ;


      
      
        24
      
      
                }


      
      
        25
      
      
            }


      
      
        26
      
      
        if
      
       (*str == 
      
        '
      
      
        \0
      
      
        '
      
      
        )


      
      
        27
      
      
            {


      
      
        28
      
               g_nStatus =
      
         KValid;


      
      
        29
      
      
            }


      
      
        30
      
      
        return
      
      
         num;


      
      
        31
      
      
        }


      
      
        32
      
      
        int
      
       StrToInt(
      
        char
      
       *
      
        str)


      
      
        33
      
      
        {


      
      
        34
      
           g_nStatus =
      
         KInvalid;


      
      
        35
      
      
        long
      
       num = 
      
        0
      
      
        ;


      
      
        36
      
      
        if
      
       (*str != NULL && *str !=
      
        '
      
      
        \0
      
      
        '
      
      
        )


      
      
        37
      
      
            {


      
      
        38
      
      
        bool
      
       minus = 
      
        false
      
      
        ;


      
      
        39
      
      
        if
      
      (*str == 
      
        '
      
      
        +
      
      
        '
      
      
        )


      
      
        40
      
                   str++
      
        ;


      
      
        41
      
      
        else
      
      
        if
      
      (*str == 
      
        '
      
      
        -
      
      
        '
      
      
        )


      
      
        42
      
      
                {


      
      
        43
      
                   str++
      
        ;


      
      
        44
      
                   minus = 
      
        true
      
      
        ;


      
      
        45
      
      
                }


      
      
        46
      
      
        if
      
       (*str !=
      
        '
      
      
        \0
      
      
        '
      
      
        )


      
      
        47
      
      
                {


      
      
        48
      
                   num =
      
         StrToIntCore(str,minus);


      
      
        49
      
      
                }


      
      
        50
      
      
            }


      
      
        51
      
      
        return
      
      
        int
      
      
        (num);


      
      
        52
      
      
        }


      
      
        53
      
      
        54
      
      
        void
      
      
         main()


      
      
        55
      
      
        {


      
      
        56
      
           printf(
      
        "
      
      
        %d
      
      
        "
      
      ,StrToInt(
      
        "
      
      
        -12
      
      
        "
      
      
        ));


      
      
        57
      
       }
    

?

在前面的代碼中,把空字符串“”和只有一個正號或負號的情況都考慮到了。同事還考慮整數的最大值是0x7fffffff,最小值0x80000000,一次要分兩種情況判斷溢出。

?

模仿c的字符轉整數函數 atoi


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品久| 99精品大学生啪啪自拍 | wwe亚洲第一站 | 综合色在线观看 | 97成人免费视频 | 免费视频亚洲 | 搡女人免费的视频 | 国产亚洲新品一区二区 | www天天操| 久久青青草原精品影院 | 在线免费看a | 男女一级毛片免费视频看 | 亚洲天堂久久 | 亚洲精品久久久久久动漫剧情 | 四虎成人免费影院网址 | 欧美在线一级精品 | 99视频在线永久免费观看 | 91九色国产 | 欧美性猛交xxxxbbbb | 人人爱天天做夜夜爽 | 日韩另类视频 | 日本3p视频在线看高清 | 性色va| 大尺度福利视频在线观看网址 | 欧美色欧美亚洲高清在线观看 | aaa特级毛片 | 免费国产午夜高清在线视频 | 色综合色综合色综合色综合 | jizzjizz欧美69巨大 | 国产一区二区不卡视频 | 91精品啪在线观看国产老湿机 | 每日更新在线观看av | 国产精品亚洲一区在线播放 | 在线成人tv天堂中文字幕 | 久久久精品免费热线观看 | 91在线播 | 久久成人免费网站 | 不卡网站| 久久青草免费91观看 | 欧美色视频在线观看 | 欧美日韩亚毛片免费观看 |