#include
#include
using namespace std;
class Solution {
public: int myAtoi(string str) {
char* p = &str[0];
int len = str.length();
while (*p == ’ ')
p++;
if (*p != ‘-’ && *p != ‘+’ && (*p < ‘0’ || p>‘9’))
return 0;
long long global = 0;
char q = p;
if (*p != ‘-’ && *p != ‘+’)
{
while (*p >= ‘0’ && *p <= ‘9’)
{
*p = *p - ‘0’;
global = global * 10 + *p;
p++;
}
}
else if (*p == ‘-’ || *p == ‘+’)
{
p++;
while (*p >= ‘0’ && *p <= ‘9’)
{
*p = *p - ‘0’;
global = global * 10 + *p;
p++;
}
}
if (*q == ‘-’)
{
if (-global < INT_MIN)
return INT_MIN;
return -global;
}
else if (*q != ‘-’)
{
if (global > INT_MAX)
return INT_MAX;
}
return global;
}
};
int main()
{
string str;
cout << "please Enter the string: ";
cin >> str;
Solution s;
cout<<s.myAtoi(str);
return 0;
}
本文详细解析了使用C++实现字符串转整数的方法,通过一个具体的代码示例,展示了如何从输入的字符串中读取数值,并处理可能的符号和溢出情况,确保转换过程的准确性和健壮性。
1799

被折叠的 条评论
为什么被折叠?



