leetcode 原题链接:https://leetcode.com/problems/string-to-integer-atoi/
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
简要翻译:实现字符串转换为整数的 atoi函数
提示:注意考虑所有存在的输入情况。
实现代码:
#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;
class Solution
{
public:
int myAtoi(string str)
{
if (str.empty())
return 0;
long int res = 0;
int i = 0, flag = 1;
i = str.find_first_not_of(' ');
if (str[i] == '-')
{
flag = -1;
i++;
} else if (str[i] == '+')
{
i++;
}
for (; isdigit(str[i]) && res <= INT_MAX&&i<str.size(); i++)
res = res * 10 + (int)(str[i] - '0');
if (flag*res>INT_MAX)
return INT_MAX;
if (flag*res< INT_MIN)
return INT_MIN;
return flag*res;
}
};