剑指offer之把字符串转换成整数
来源:互联网 发布:头发少 知乎 编辑:程序博客网 时间:2024/05/22 03:17
题目:
现在写一个函数StrToInt,实现把字符串转换为整数的功能,不能使用已有的相关函数。
分析:
要考虑到非法的输入,比如空字符串“”和只有一个正号或负号的情况。同时整数的最大值为0x7FFFFFFF,最小值为0x80000000。
代码:
enum Status {kValid = 0,kInvalid };
int g_nStatus = kValid ; //全局变量,用来判断非法输入0
int
StrToInt(const char* str)
{
g_nStatus =kInvalid ;
long
long
num = 0;
if
(str!= NULL && *str!='\0')
{
bool minus = false;
if(*str == '+')
str++;
else if(*str == '-')
{
str++;
minus = true;
}
if(*str != '\0')
num = StrToIntCore(str, minus);
}
}
long long StrToIntCore(const char* digit,bool minus)
{
long long num = 0;
while
(*digit != '\0')
{
if
(*digit >='0' && *digit<='9')
{
int flag = minus ? -1 : 1;
num = num * 10 + flag *(*digit - '0'
);if((!minus && num >0x7FFFFFFF )||(minus && num < 0x80000000))//溢出判断
{
num = 0;
break;
}
digit++;
}
else
{
num = 0;
break;
}
}
if
(*digit=='\0'
)
g_nStatus = kValid;
return num ;
}
0 0
- 剑指offer之把字符串转换成整数
- 剑指offer系列之48:把字符串转换成整数
- 剑指offer(三十二)之把字符串转换成整数
- 剑指offer之把字符串转换成整数
- 剑指offer--把字符串转换成整数
- 《剑指offer》把字符串转换成整数
- 《剑指offer》把字符串转换成整数
- [剑指offer]把字符串转换成整数
- 剑指offer|把字符串转换成整数
- 《剑指offer》-把字符串转换成整数
- 剑指offer 把字符串转换成整数
- 剑指offer: 把字符串转换成整数
- 【剑指offer】把字符串转换成整数
- 剑指offer--把字符串转换成整数
- 把字符串转换成整数 剑指offer
- 剑指offer:把字符串转换成整数
- 剑指offer-把字符串转换为整数
- 【剑指offer】题目1508:把字符串转换成整数
- SQL语句强化练习题及答案
- 电商她经济——做淘宝、微店必知的女性消费经济学
- mysql 创建用户并授权
- CLR基础
- mysql 自已更新更新了日期字段问题
- 剑指offer之把字符串转换成整数
- Spring MVC 中的 forward 和 redirect
- Ubuntu重新安装ubuntu unity
- SQLite的可变长整数
- Amanda备份配置
- 讲解Canvas中的一些重要方法
- NetBeans下Android项目文件作用
- 数据结构与算法-求子数组的最大和
- 2015年职场人薪资满意度调查报告