标签:style blog io ar color sp for on div
atoi函数最关键的地方是想好测试用例:
class Solution { public: int atoi(const char *str) { if(strlen(str)==0) return 0; double result=0; int j=0; while(str[j]==‘ ‘) //忽略字符串首空格 { j++; } int last = strlen(str)-1; int last_space = 0; while(str[last]==‘ ‘) //忽略字符串尾空格 { last--; last_space++; } if(str[j]==‘+‘) { for(int i=j+1;i<strlen(str)-last_space;i++) { if(str[i]>=‘0‘&&str[i]<=‘9‘) { result = result*10 + (str[i]-‘0‘); } //如果遇到非法字符,终止转换 else { break; } } if(result>INT_MAX) { return INT_MAX; } else { return result; } } if(str[j]==‘-‘) { for(int i=j+1;i<strlen(str)-last_space;i++) { if(str[i]>=‘0‘&&str[i]<=‘9‘) { result = result*10 + (str[i]-‘0‘); } else { break; } } if(result*(-1) < INT_MIN) { return INT_MIN; } return result*(-1); } for(int i=j;i<strlen(str)-last_space;i++) { if(str[i]>=‘0‘&&str[i]<=‘9‘) { result = result*10 + (str[i]-‘0‘); } else { break; } } if(result>INT_MAX) { return INT_MAX; } if(result*(-1) < INT_MIN) { return INT_MIN; } return result; } };
标签:style blog io ar color sp for on div
原文地址:http://www.cnblogs.com/hubavyn/p/4150106.html