题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647 1a33
输出例子:
21474836470
class Solution { public: int StrToInt(string str) { int size = str.size(); int flag = 1;//正数为1,复数为-1 int number = 0; for (int i = 0; i < size; ++i) { if (str[i] == '+') { if (i == 0) flag = 1; else return 0; continue; } if (str[i] == '-') { if (i == 0) flag = -1; else return 0; continue; } if (str[i] - '0' >= 0 && str[i] - '0' <= 9) { number *= 10; number += str[i] - '0'; } else return 0; } return number*flag; } };