本题源自剑指offer
代码为自己编写
-------------------------------------
没考虑溢出
int StrToInt(string str) {
if(str.size()==0)
return 0;
int i=0;
int flag=0;
if(str[i]=='+')
i++;
if(str[i]=='-'){
i++;
flag=1;
}
int sum=0;
while(str[i]!='\0'){
if(str[i]>='0' && str[i]<='9'){
sum=sum*10+str[i]-'0';
i++;
}else{
return 0;
}
}
if(str[i]=='\0'){
if(flag==1){
sum=0-sum;
}
}
return sum;
}
考虑溢出;
int StrToInt(string str) {
if(str.size()==0)
return 0;
int i=0;
int flag=0;
if(str[i]=='+')
i++;
if(str[i]=='-'){
i++;
flag=1;
}
int sum=0;
while(str[i]!='\0'){
if(str[i]>='0' && str[i]<='9'){
sum=sum*10+str[i]-'0';
if((!flag&&sum > 0x7FFFFFFF)||(flag&&(0-sum)<0x80000000)){
sum=0;
break;
}
i++;
}else{
return 0;
}
}
if(str[i]=='\0'){
if(flag==1){
sum=0-sum;
}
}
return sum;
}