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

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

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

來源:程序員人生   發布時間:2016-08-02 08:21:57 閱讀次數:2462次
題目:請實現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; }

運行結果:


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久久久久久不卡 | 99国产精品久久久 | 欧美精品在线一区二区三区 | 国产成人精品三级麻豆 | 欧美群妇大交群中文字幕 | 中文字幕免费av | 伊人五月 | 久久久久免费 | 国产精品国产三级国产在线观看 | 国产精品99久久久久久久久 | 看av网站 | 久久久久久久 | 午夜日韩视频 | 亚洲精品电影在线观看 | av九九九 | 国产精品成人3p一区二区三区 | 欧美黑人双插 | 欧美午夜在线 | 国产成人一区二区 | 国产成人在线视频 | 波多野结衣av在线播放 | 91成人国产 | 免费成人av | 视频精品一区 | 国产精品久久久久久久久久久免费看 | 免费福利av| 欧美精品一卡 | 亚洲第一福利视频 | www.久久.com| 欧美精品一区三区 | 色婷婷狠 | 久久国产精品99久久久久久牛牛 | 一二三区在线 | 国产一区二区三区在线电影 | 久久99成人 | 在线日韩视频 | 欧美成年网站 | 成人美女免费网站视频 | 久久久久久久综合 | 一区二区三区精品在线 | 青青草国产成人av片免费 |