日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 你會(huì)寫“atoi”嗎???

你會(huì)寫“atoi”嗎???

來源:程序員人生   發(fā)布時(shí)間:2016-06-16 08:18:34 閱讀次數(shù):2821次
分析:
1、如果輸入的字符包括不是數(shù)字字符的字符???
 例如:“123adc4".
針對(duì)這類情況,我們只要加上判斷就好了,只要遇到不是數(shù)字字符的直接返回。

2、如果在數(shù)字字符前面有正負(fù)號(hào)又該怎樣辦???
 例如:”⑴23”、“+123”.
針對(duì)這類情況,我們?cè)偌由吓袛啵袛嘧址牡?個(gè)字符是否是正負(fù)號(hào),并用1個(gè)標(biāo)記位flag記錄正負(fù)。

3、當(dāng)輸入的字符串前面幾個(gè)字符都是空格又該怎樣辦???
 例:“   ⑴23”,“   +123”.
  針對(duì)這類情況,庫里面的atoi是將空格跳過再進(jìn)行判斷的,所以我們?cè)?開始就用循環(huán)將空格跳過,注意這時(shí)候候要是字符串里面全部是空格,則我們應(yīng)當(dāng)返回1個(gè)值,就返回0吧。

4、當(dāng)輸入的字符串中沒有數(shù)字時(shí),我們應(yīng)當(dāng)返回甚么呢???
我們?cè)谶@類情況下返回0.

5、當(dāng)字符串中的字符數(shù)字轉(zhuǎn)化的整數(shù)太大,會(huì)有可能溢出???
針對(duì)這類情況,我們需要做出1個(gè)判斷,判斷轉(zhuǎn)化后的數(shù)字當(dāng)它的范圍在long的范圍內(nèi)。

  那末最重要的1個(gè)問題來了,當(dāng)你第3、4中情況下,返回的是0,如果輸入“0”返回的也是0,這兩個(gè)0怎樣辨別呢???,貌似在這里你把3、4兩種情況下的返回值設(shè)置成甚么都不適合。所以我們可以設(shè)置1個(gè)全局變量state,來記錄是否是正常返回。


#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> enum State { NORMAL, //正常 ABNORMAL //異常 }state; state = ABNORMAL; //將初始狀態(tài)置為異常 int my_atoi(const char *src) { assert(src); int flag = 1; long long ret = 0; while (*src==' ') //跳過空格 { src++; } if (*src == '\0') //如果這時(shí)候候字符串已完了,則直接返回 { return 0; } if (*src == '+') //接下來判斷正負(fù) { src++; } else if (*src == '-') { flag = ⑴; src++; } while (*src >= '0'&&*src <= '9') //讀取字符數(shù)字轉(zhuǎn)換成整型 { ret = ret * 10 + flag*(*src-'0'); if (ret >= INT_MAX|| ret <= INT_MIN) //如果溢出的話直接跳出 { break; } src++; } if (*src == '\0') //正常返回 state = NORMAL; //將狀態(tài)置為正常 return (int)ret; } int main() { char arr[50] = { 0 }; scanf("%s", arr); int ret=my_atoi(arr); if (state == ABNORMAL) printf("異常返回\n"); printf("%d\n", ret); system("pause"); return 0; }


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久精选视频 | 国产精品久久久一区 | 天堂аⅴ在线最新版在线 | 日日噜噜夜夜爽狠狠视频 | 欧美性受 | 精品成人一区二区 | 男女污污的视频 | 久久久久成人网 | 日韩精品成人免费观看视频 | 高清黄色毛片 | 欧美综合在线视频 | 日韩一区二区三区精品 | 美女高潮免费视频 | 激情五月综合网 | 欧美日韩国产综合在线 | 欧美国产在线观看 | 综合久久99| 欧美首页 | 久久精品国产免费 | 精品一区二区三区视频 | 青青草成人网 | 99在线精品视频 | 亚洲成人一区二区三区 | 玖玖国产精品视频 | 免费污污网站 | 国产精品三级久久久久久电影 | 美女又黄又免费 | 亚洲成人在线免费 | 啵多野结衣在线观看 | 国产精品无 | 一区二区三区四区不卡 | 亚州三级| 大奶一级片| 国产精品久久久久久影院8一贰佰 | 久久只有精品 | 视频精品一区二区三区 | 日韩在线黄 | 亚洲熟区| 日本黄色大片免费 | 日韩综合一区 | 日韩视频免费在线 |