多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 《劍指offer》:[54]表示數值的字符串

《劍指offer》:[54]表示數值的字符串

來源:程序員人生   發布時間:2016-08-02 08:21:57 閱讀次數:2454次
題目:請實現1個函數用來判斷字符串是不是表示數值(包括整數和小數)。
例如,字符串“+100”,“5e2”,“⑴23”,“3.1416”及”⑴E⑴6”都表示數值,但“12e”,”1a3.14”,”1.2.3”,”+⑸”及“12e+5.4”都不是。 

分析:這個題主要是利用數字的表示通式來解決:表示1個數字的通式為:
                           [sign]integral-digits[.[fractional-digits]][e|E[sign]exponential-digits]('['和']'之間的數據都是可有可無的,可省略)
表達的意思是:[符號]整型數字[小數點[小數整數]][e|E[指數的符號]指數的整數表示].依照這個步驟思路來判斷就不會錯。
   看1個字符串是不是符合上述模式時,首先看第1個字符是否是正負號。如果是,在字符串上移動1個字符,繼續掃描剩余的字符串中0到9的數位。如果是1個小數,則可能遇到小數點。另外如果是科學計數法,則在小數點的后面可能遇到e|E。
具體實現代碼以下:
#include <iostream> using namespace std; void ScanDigits(char **str) //判斷是不是是0⑼之間的數字; { while(**str!='\0' && **str>='0' && **str<='9') ++(*str); } bool IsExponential(char **str)//判斷e或E以后的表達式是不是合法:符號+數字; { if(**str!='e' && **str!='E') return false; ++(*str); if(**str=='+' || **str=='-') ++(*str); if(**str=='\0') return false; ScanDigits(str); return (**str=='\0')?true:false; } bool IsNumber(char *str) { if(str==NULL) return false; if(*str=='+' || *str=='-') //判斷符號; ++str; if(*str=='\0') return false; bool numeric=true; ScanDigits(&str); if(*str!='\0') { //如果是浮點數; if(*str=='.') { str++; ScanDigits(&str); if(*str=='e' || *str=='E') numeric=IsExponential(&str); } //如果是整型數的科學計數法; else if(*str=='e' || *str=='E') numeric=IsExponential(&str); else numeric=false; } return numeric && *str=='\0'; } int main() { char *strr[4]={"5e2","⑴E⑴6","12e+5.4","12e"}; for(int i=0;i<4;i++) { if(IsNumber(strr[i])) cout<<strr[i]<<": YES!"<<endl; else cout<<strr[i]<<": NO!"<<endl; } system("pause"); return 0; }

運行結果:


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 男女自偷自拍视频免费观看篇 | 高清中文字幕视频在线播 | 韩国一级做a爰片性色毛片 韩国在线观看免费观看影院 | 日韩乱小说 | 亚洲图片国产日韩欧美 | 亚洲久久综合 | 成人精品久久 | 国产精品久久久久久久久免费观看 | 最新亚洲 | 精品一区二区乱码久久乱码 | 最近中文字幕大全高清在线 | 国产中文字幕在线免费观看 | 波多野结衣在线观看一区 | 片在线观看免费观看视频 | 亚洲福利网址 | 毛片在线播放观看日本 | 国产一区二区播放 | 精品不卡一区中文字幕 | 在线观看www日本免费网站 | 天堂最新版www在线观看 | 国产成人亚洲精品2020 | 99精品一区二区免费视频 | 一区在线看 | 日本精品a在线观看 | 国产成人综合亚洲亚洲欧美 | 国产成人一区二区三区在线视频 | 男女爱爱免费网站视频在线观看 | 欧美性猛交xxxx免费看手交 | 国99久9在线 | 免费 | 亚洲动漫第一页 | 一区二区国产精品 | 爱操综合| 亚洲视频在线一区二区三区 | 午夜精品久久久久 | 九色国产| 成人精品| 亚洲欧美日韩中文综合v日本 | 欧美日韩专区 | 国产一区二区成人 | 黄色小说区 | 精品久久久久久影院免费 |