欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 18:32:10
...

本题纯模拟,就是注意一下溢出就行

TIPS:
1.

int main(){
	printf("%d \n%d",INT_MAX,INT_MIN);
} 

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

2.本题判定为溢出两个条件
(1)当前值>INT_MAX整除10
(2)当前值=INT_MAX整除10 并且 即将加上的数大于7

code:

int myAtoi(string s) {
	int i=0,ans=0,f=1;
	while(s[i]==' ')
		i++;
	if(s[i]=='-'||s[i]=='+')
		f=(s[i++]=='+'?1:-1);
	while(s[i]>='0'&&s[i]<='9'){
		if(ans>INT_MAX/10||(ans==INT_MAX/10&&s[i]-'0'>7))
			return f==1?INT_MAX:INT_MIN;
			ans=ans*10+(s[i++]-'0');
		}
	return ans*f;
};