20170912_将一个整数转换为字符串

来源:互联网 发布:手机看网站源码 编辑:程序博客网 时间:2024/06/16 17:56

20170912_将一个整数转换为字符串

//将给定的一个表示数字的字符串转化为整数#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;class Solution{public:int myAtoi(string &str){int sz=str.size();//字符串长度long long num=0;if(sz==0)return num;else{bool minus=false;//表示符号位,false代表正数string::iterator digit=str.begin();int countminus=0;//负号的个数while(digit<str.end() && (*digit == '+' || *digit == '-' || !('0'<=*digit || *digit<='9'))){if(*digit == '+')++digit;else if(*digit == '-'){++digit;++countminus;}else++digit;}if(countminus%2==0)minus=false;elseminus=true;if(digit == str.end())return num;//****************************while(digit<str.end()){if('0'<=*digit && *digit<='9')//逐个数字字符进行转换{num=num*10+(*digit-'0');if(num>std::numeric_limits<int>::max())//int表示的最大整数{num=0;break;}++digit;}else//含有非数字字符{num=0;break;}}//****************************if(digit==str.end())//正确转转了{if(minus==true)num=0-num;return num;}}}};int main(void){string str="-0012a45";cout<<str<<endl;Solution object;int res=object.myAtoi(str);cout<<res<<endl;system("pause");return 0;}




原创粉丝点击