写atoi时,发现有很多细节要注意,经过多次测试,写了一个考虑比较全面的版本。class Solution {public: int atoi(const char *str) { int num=0,flag=1,numOfSingle=0,i=0; const int n=strlen(str); while(str[i]==' '&& i1) return 0; for(;i<n;i++) { //中间出现无效符号,则返回当前num if(str[i]<'0'||str[i]>'9') break; if(num >INT_MAX/10 || num == INT_MAX/10 && (str[i]-'0') > INT_MAX%10) return flag==-1 ? INT_MIN:INT_MAX; num=num*10+str[i]-'0'; } return num*flag; } };
atoi(c++实现)
最新推荐文章于 2021-09-27 17:41:16 发布