#include <iostream>
#include <assert.h>
using namespace std;
int ato(const char *str) {
int i=,e=,s=;
int max=,min=-;
int f=;
int tem[]={};
unsigned int pan=;
while(*str==' '){ //过滤掉连续空格
str++;
}
if(*str=='-'||*str=='+'||(*str<=''&&*str>='')){
if(*str=='-'||*str=='+'){ //过滤掉正负号
if(*str=='-')
f=-;
str++;
}
while(*str=='') //过滤掉前面的无用的0
str++;
if( *str<=''&&*str>='' ){ //过滤掉非数字的字符 while( *str!='\0'){ //判断字符串是否结束
if( *str>''||*str<'' ) //字符串还没结束,就出现非数字字符
break;
if( i== ){ //大于10位的数字都要作溢出处理
if(f==-)
return min;
else
return max;
}
tem[i++]=*str-'';
e=e*+(*str-'');
str++;
}
if(i==){ //刚好10位,需要特殊处理
if(f==-){ //负数处理
if(tem[]>){ //超过30,0000,0000
return min;
}
for(i=;i<;i++){
pan=pan*+tem[i];
}
if(pan>=) // 负数的绝对值大于等于2147483648
return min;
}
else{ //正数处理
if(tem[]>){
return max;
}
for(i=;i<;i++){
pan=pan*+tem[i];
}
if(pan>=) // 负数的绝对值大于等于2147483648
return max;
}
}
return f*e;
}
else
return ;
}
return ;
}
int main(){
char str[];
int qq=;
while(cin>>str){
qq=ato(str);
cout<<qq<<endl;
}
return ;
}

这个东西原来挺难考虑周全的,还好leetcode会指出是输入什么数据会输出错误,不然估计找一辈子了。

鉴于这么苛刻的条件,贴出自己的不简洁的代码,这道题第一次AC。

以后有好办法再修改。

LeetCode OJ String to Integer (atoi) 字符串转数字的更多相关文章

  1. [LeetCode] 8. String to Integer (atoi) 字符串转为整数

    Implement atoi which converts a string to an integer. The function first discards as many whitespace ...

  2. [leetcode]8. String to Integer (atoi)字符串转整数

    Implement atoi which converts a string to an integer. The function first discards as many whitespace ...

  3. 【LeetCode】String to Integer (atoi)(字符串转换整数 (atoi))

    这道题是LeetCode里的第8道题. 题目要求: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...

  4. Leetcode 8 String to Integer (atoi) 字符串处理

    题意:将字符串转化成数字. 前置有空格,同时有正负号,数字有可能会溢出,这里用long long解决(leetcode用的是g++编译器),这题还是很有难度的. class Solution { pu ...

  5. Leetcode 8. String to Integer (atoi) atoi函数实现 (字符串)

    Leetcode 8. String to Integer (atoi) atoi函数实现 (字符串) 题目描述 实现atoi函数,将一个字符串转化为数字 测试样例 Input: "42&q ...

  6. 【leetcode】String to Integer (atoi)

    String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully consider ...

  7. leetcode day6 -- String to Integer (atoi) &amp;&amp; Best Time to Buy and Sell Stock I II III

    1.  String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully con ...

  8. String to Integer (atoi) - 字符串转为整形,atoi 函数(Java )

    String to Integer (atoi) Implement atoi to convert a string to an integer. [函数说明]atoi() 函数会扫描 str 字符 ...

  9. [leetcode] 8. String to Integer (atoi) (Medium)

    实现字符串转整形数字 遵循几个规则: 1. 函数首先丢弃尽可能多的空格字符,直到找到第一个非空格字符. 2. 此时取初始加号或减号. 3. 后面跟着尽可能多的数字,并将它们解释为一个数值. 4. 字符 ...

随机推荐

  1. VSS Plugin配置FAQ(翻译)[转]

    前言(译者) 就个人的成长历程来说,刚参加工作用的是 CVS ,前前后后有接近三年的使用体验,从今年开始使用 SVN .总的来说我更喜欢 SVN ,用起来的确很方便,例如在本地源代码文件中加一个空格然 ...

  2. SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程

    将 Windows 登录帐户添加为 sysadmin 已经具有 sysadmin 特权的用户必须执行以下命令: sp_addsrvrolemember 'Domain\Name', 'sysadmin ...

  3. CAP Confusion: Problems with ‘partition tolerance’

    by Henry Robinson, April 26, 2010 The 'CAP' theorem is a hot topic in the design of distributed data ...

  4. Json数据,日期的转换

    using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE)) { con.Open(); using (SQLi ...

  5. php头像上传并裁剪支持3个尺寸

    源码下载

  6. DrawerLayout一个简单的实例(与ActionBar无关)

    官方的Demo里有DrawerLayout的例子,涉及到ActionBar,这里不用ActionBar,手痒,写个超级简单的小Demo,备着以后或许会用到. 详细的内容,可以访问:http://blo ...

  7. JS页面打印,预览,设置,分页

    一)在HTML页中加载打印对象 <object id="WebBrowser" width="0" height="0" classi ...

  8. sourcetree使用问题汇总

    1.可优先查阅博文<git 用户手册 1.5.3及后续版本使用>: 2.问题1 Cloning into 'folder'... warning: templates not found ...

  9. idea使用generator自动生成model、mapper、mapper.xml(转)

    原文链接:http://www.mamicode.com/info-detail-445217.html TEP 0.在Intellij IDEA创建maven项目(本过程比较简单,略) STEP 1 ...

  10. Windows Server 2012 R2 设置

    一.任务栏左下角启动服务器管理器,然后进行设置.1.登录不显示服务器管理器 2.本地服务器,看到右边的IE增强的安全配置,如图所示,关闭两项内容.这样就关闭了IE增强安全提示框. 3.“工具”菜单,启 ...