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;
- }
- };