class Solution { public: int StrToInt(string str) { int len=str.size(); int flag=1; if(len==0) return 0; int i=0; while(str[i]==' '){ i++;//如果str[i]为空格,str[i]顺序后移 } if(str[i]=='+'){ i++; flag=1;//如果str[i]为'+',str[i]顺序后移,并令标志flag为1,表示为正数 } else if(str[i]=='-'){ i++; flag=-1;//如果str[i]为'-',str[i]顺序后移,并令标志flag为-1,表示为负数 } int num=0; while(str[i]!='\0'){ if(str[i]>='0' && str[i]<='9'){//每遍历一个在0-9间的字符,就将其输入到num中 num=num*10+flag*(str[i]-'0');//下一次输入到num中时要加上上一次*10的结果,即上一次的数左移一位(十进制下) i++; } else{ return 0; } } return num; } };