8. 字符串转换整数 (atoi)

烂做🥴😖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int myAtoi(char * s){
long long int res=0;
int len=strlen(s),i=0;
while(s[i]==' '){
i+=1;
}
bool a=0;
if(s[i]=='-'){
a=1;
i+=1;
if(s[i]>'9'||s[i]<'0')
return 0;
}
if(s[i]=='+')
i+=1;
if(s[i]>'9'||s[i]<'0')
return 0;
while(i<len){
if(s[i]>'9'||s[i]<'0')
break;
if(res>2147483648)
return a?-2147483648:2147483647;
res=res*10+s[i]-'0';
i+=1;
}
res=a?-res:res;
if(res<-2147483648)
return -2147483648;
if(res>2147483647)
return 2147483647;
return res;
}