vendredi 6 mars 2015

Writing an atoi to convert string to integer

I am writing an atoi to convert string to integer. Here is my code of atoi()function



int atoi(string str) {
int num=0;
int sign=1;
int len=str.size();
int i=0;
if(str[i]==' '&& i<len) i++;
if(str[i]='+') i++;
if(str[i]=='-') {i++;sign=-1;}

for(;i<len;i++){
if(str[i]==' ') break;
if(str[i]<'0' || str[i]>'9') break;
if(INT_MAX/10<num || INT_MAX/10==num && INT_MAX%10<(str[i]-'0'))
{ return sign==-1 ?INT_MIN:INT_MAX;
break;
}
num=num*10+str[i]-'0';
}
return num*sign;

}


However, when input '1', output is 0, Why is that please?


Aucun commentaire:

Enregistrer un commentaire