《剑指offer》-把字符串转换成整数
2016-07-16 09:10
351 查看
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。解法:
1.判断字符串指针是否为NULL,字符串是否为空“\0”
2.判断第一个正、负号
3.进行循环判断,核心转换就是字符-‘0’就是数字了,然后*10,不断累加即可
4.还要判断是否溢出,int为4个字节,所以正数上限为0x7FFFFFFF,负数的底线为0x8FFFFFFF
class Solution {
public:
int StrToInt(string str) {
long long num = 0;
const char * cstr = str.c_str();
if(cstr != NULL & *cstr != '\0') {
bool minus = false;
if(*cstr == '+')
cstr++;
else if(*cstr == '-') {
cstr++;
minus = true;
}
if(*cstr != '\0') {
num = StrToIntCore(cstr, minus);
}
}
return (int)num;
}
long long StrToIntCore(const char * diggt, bool min) {
long long num = 0;
while(*diggt != '\0') {
int flag = min ? -1:1;
if(*diggt < '9' && *diggt > '0') {
num = num * 10 + flag * (*diggt - '0');
if((!min && num > 0x7FFFFFFF) || (min && num < (signed int)0x80000000)) {
num = 0;
break;
}
diggt++;
}
else {
num = 0;
break;
}
}
return num;
}
};
相关文章推荐
- Discuzx系统 CSS 编码规范,CSS属性书写顺序
- 复杂选择器 内容生成 多列 CSSHack(浏览器兼容)
- Nodejs之MEAN栈开发(七)---- 用Angular创建单页应用(下)
- 用CSS3实现旋转的CD
- jquery 选择器大全
- css3语法、尺寸与边框
- bzoj 1823 [JSOI2010]满汉全席
- JS获取/设置iframe内对象元素、文档的几种方法
- 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
- LeetNode--No.257--Binary Tree Paths
- jQuery跨域访问
- JavaScript实现输入框动态显示光标的XY值
- 剑指offer系列-T27把二元查找树转变成排序的双向链表
- 剑指Offer java代码
- js div中内容溢出时最新添加的元素可视化
- JavaScript的history对象实现页面前进、后退、跳转
- 现代前端工具汇总
- javascript和jquery比较中学习
- jQuery 增加 删除 修改select option
- jquery判断input内的值变化时触发动作?