#include <iostream>
using namespace std;
class Solution {
public:
static long long myAtoi(string s) {
auto it = s.begin();
while ((*it == ' ') || (*it == '0'))
{
s.erase(it);
}
long long sum = 0;
int flag = 1;
auto cur = 0;
while ((cur = s.find('-'))!=-1)
{
s.erase(cur,1);
flag = -flag;
}
while ((cur = s.find( '+'))!=-1)
{
s.erase(cur,1);
}
for (auto it = s.begin();it!=s.end()-1; it++)
{
sum += sum * 10 + (*it- '0');
}
if (flag == -1)
sum = -sum;
return sum;
}
};
void test()
{
cout << Solution::myAtoi("426") << endl;
}
int main()
{
test();
return 0;
}
主函数中测试的输入的是42
但是输出的话就是46
xdm解答一下