剑指Offer-67:把字符串转换成整数
2018-03-29 22:36
393 查看
题目:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0链接:
剑指Offer(第2版):P318思路标签:
边界条件解答:
该题目主要考察的就是边界条件:数据上下溢出、空字符串、只有正负号、有无正负号、错误标志输出class Solution { public: enum Status { kValid = 0, kInvalid }; int g_nStatus = kValid; int StrToInt(string str) { g_nStatus = kInvalid; long long num = 0; const char* cstr = str.c_str(); if ((cstr != nullptr) && (*cstr != '\0')) { int minus = 1; if (*cstr == '-') { minus = -1; cstr++; } else if (*cstr == '+') cstr++; while (*cstr != '\0') { if (*cstr > '0' && *cstr < '9') { g_nStatus = kValid; num = num * 10 + (*cstr - '0'); cstr++; if (((minus>0) && (num > 0x7FFFFFFF)) || ((minus<0) && (num > 0x80000000))) { g_nStatus = kInvalid; num = 0; break; } } else { g_nStatus = kInvalid; num = 0; break; } } if (g_nStatus == kValid) num = num * minus; } return (int)num; } };
c++相关
string:http://www.cplusplus.com/reference/string/string/
相关文章推荐
- 【剑指offer】面试题67:把字符串转换成整数
- 剑指offer--把字符串转换成整数
- 剑指offer——字符串转换为整数
- 剑指offer之字符串到整数的转换,例如输入字符串12345,输出整数12345.
- 剑指offer——面试题:把字符串转换为整数
- 剑指offer 49. 把字符串转换成整数
- LintCode-剑指Offer-(54)转换字符串到整数
- 剑指offer | 训练题48:把字符串转换成整数
- 剑指offer_把字符串转换成整数
- 剑指offer-49.把字符串转换成整数
- 剑指offer 把字符串转换成整数
- [剑指offer]把字符串转换成整数
- 剑指offer-----将一个字符串转换成对应的整数(模拟atoi)
- [剑指offer][面试题49]把字符串转换成整数(待完善)
- 【剑指offer-解题系列(50)】把字符串转换成整数
- 剑指Offer——把字符串转换成整数
- 剑指offer — 把字符串转换成整数
- 剑指offer---把字符串转换为整数(49)
- 剑指Offer 49 把字符串转换成整数
- 剑指offer: 把字符串转换成整数