字串轉整數問題

來源:互聯網
上載者:User

標籤:style   檔案   os   2014   io   問題   

要點:要考慮到各種非法參數。

實現:

/**********************************字串轉整數by Rowandjj2014/7/15***********************************/#include<iostream>#include<stdlib.h>//不加這個標頭檔在九度oj上會編譯錯誤using namespace std;int state = 0;//0代表串非法,1代表正常long Str2Int(const char *str){long num = 0;if(str == NULL)//輸入null{state = 0;return 0;}const char* digit = str;int minius = 0;//0代表正數,1代表負數while(*digit == ' ')//跳過空格{digit++;}if(*digit == '+'){digit++;}else if(*digit == '-'){minius = 1;digit++;}if(*digit == '\0')//只輸入+或者-{state = 0;return 0;}while(*digit != '\0'){if(*digit > '9' || *digit < '0')//非法字元{state = 0;return 0;}state = 1;num = num*10 + (*digit - '0');//核心代碼digit++;}//越界if(*digit>0x7fffffff || *digit<(signed int)0x80000000){state = 0;return 0;}  return minius?(0-num) : num;}int main(){long digit;char str[1000];char *p = str;while(cin>>p){digit = Str2Int(p);if(state==0){cout<<"My God\n";}else//state == 1{cout<<digit<<endl;} }return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.