LeetCode-8 字符串转换整数(atoi)

 

class Solution {
public:
long myAtoi(string str) {
	//面试题中经常会考到的
	int len = str.size();
	int first = false;
	int flag = 0;
	long result = 0;
	if (len == 0)
		return 0;
	int i;
	for (i = 0; i<len;++i)
	{
		
		if (str[i] == ' ')
		{
			continue;
		}
		else
		{
			if (str[i] == '+')
			{
				++i;
				break;
			}
			else if (str[i] == '-')
			{
				++i;
				flag = 1;
				break;
			}
			else if (!isdigit(str[i]))//使用一些库函数
				return 0;
			else
			{
				
				break;
			}
		}
	}
//前面判断了空格和+,-符号
	for (int j = i; isdigit(str[j]) && j < len; ++j)
	{
            result = result * 10 + str[j] - '0';
            if(result>INT_MAX||result<INT_MIN)
            {
            
                result=flag==1?INT_MIN:INT_MAX;
                return result;
                //break;
            
            }
	}

	return flag==1?-result:result;
}
};

 

相关文章: