Title description
To convert a string to an integer, a library function that cannot convert a string to an integer is required. If the value is 0 or the string is not a valid value, it returns 0
Enter description:
Enter a string, including alphanumeric symbols, can be empty
Output description:
If it is a legal numeric expression, return the number, otherwise return 0
Example 1
Input
+2147483647 1a33
Output
2147483647 0
long long string2int(string &s) {
int len = s.size();
long long sum = 0;
for (int i = len - 1; i >= 0; --i) {
if (!isdigit(s[i])) return 0;
sum += (s[i] - '0') * pow(10, len - 1 - i);
cout << sum << endl;
}
return sum;
}
int StrToInt(string str) {
int len = str.size();
if (len <= 0) return 0;
if (str[0] == '+') {
string s = str.substr(1, len - 1);
long long tmp = string2int(s);
if(tmp > INT32_MAX) return 0;
return int(tmp);
} else if (str[0] == '-') {
string s = str.substr(1, len - 1);
long int tmp = -string2int(s);
if(tmp < INT32_MIN) return 0;
return int(tmp);
} else{
long long tmp = string2int(str);
if(tmp > INT32_MAX) return 0;
return int(tmp);
}
}