leetcode atoi

来源:互联网 发布:unity3d圣典中文手册 编辑:程序博客网 时间:2024/05/22 07:01


虽然一开始就参照c++的atoi,但是还是没考虑到超过最大最小范围。


int atoi1(const char *str) {int i = 0;unsigned int res = 0;bool negf = false;while (str[i] == ' ')i++;if (str[i] == '-'){negf = true; i++;}else if (str[i] == '+') i++;int j = i;while (str[j]){if (!isdigit(str[j])){break;}j++;}while (i < j){if (res > 214748364 || (res == 214748364 && str[i] - '0' > 7)){return negf ? 0 - 2147483648 : 2147483647;}res *= 10;res += str[i++] - '0';}return negf ? 0 - res : res;}


0 0