评论区巴拉的
这道题的意思是
“ a12”->0;" -12a12"->-12;
int StrToInt(char* s ) { // write code here if(s==NULL) return 0; int len=strlen(s); int flag=1; //符号位默认为1 正数 //遍历字符串 //跳过前导空格 int i=0; long int ans=0; while(s[i]==' '){ i++; } //考虑第一个字符 为- 第二个字符不是数字 if(s[i]=='-'){ // if(s[i+1]<'0'||s[i+1]>'9') return 0; flag=-1; i++; } //第一个字符为+ else if(s[i]=='+'){ if(s[i+1]<'0'||s[i+1]>'9') return 0; flag=1; i++; } //第一个字符为"+"和"-"以外的其他数 else if(s[i]<'0'||s[i]>'9') return 0; //如果在数字范围内 while(s[i]>='0'&&s[i]<='9'){ ans=ans*10+s[i]-'0'; i++; if(ans>=2147483648){ if(flag>0) return 2147483647; else return -2147483648; } } return flag*ans; }