leetcode--字符串换整数(atoi)

本文介绍了一个简单的atoi函数实现方法,该函数能够将字符串转换为整数,并处理溢出情况。作者强调了正确理解题目的重要性,以避免不必要的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个题目也很简单 就是刚开始没看清楚题目意思 导致思维很混乱
后来重新理解了一遍题目 很快通过了
以后还是要先理解题目意思再写代码……否则就是浪费时间
代码:



int myAtoi(char* str) {
    int INTMAX=pow(2,31)-1;
    int INTMIN=-pow(2,31);
    int len = strlen(str);
    int num = 0;
    int flag = 1;  //1表示正,0表示负
	int i = 0;
	while(i<len)
	{
		if(str[i]==32)
			i++;	
		else if((str[i]>=48&&str[i]<=57)||str[i]==43||str[i]==45)//找到第一个非空格的符号或者数字
		{    
	        int j=i;
			if(str[i]==45)
			{
				flag = 0;
				j++;
			}
			if(str[i]==43)
			{
				flag = 1;
				j++;
			}
					
			while(str[j]>=48&&str[j]<=57)
			{
				if((num>INTMAX/10&&flag==1)||(num==INTMAX/10&&flag==1&&str[j]>55))
                    return INTMAX;
                if((num<INTMIN/10&&flag==0)||(num==INTMIN/10&&flag==0&&str[j]>56))
                    return INTMIN;
				if(flag==1)
                    num = num*10 + (str[j]-48);
                else
                    num = num*10 - (str[j]-48);
				j++;
			}
			break;
		}
		else
			return 0;
	}
    return num;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值