文档章节

my_atoi

 小龙Jason
发布于 2014/05/29 22:48
字数 86
阅读 3
收藏 0

听了atoi哥的故事,顺手写个

#define INT_MAX  (2147483647)
#define INT_MIN  (-2147483648)

int my_atoi(const char * str)
{
	if (!str)
		return 0;

	unsigned int result = 0;
	int sign = 1;

	if (*str == '-' || *str == '+')
	{
		if (*str == '-')
		{
			sign = -1;
		}
		++str;
	}

	while(*str >= '0' && *str <= '9')
	{
		unsigned int digital = *str-'0';
		if (result > INT_MAX /10
			|| (sign > 0)? (result == INT_MAX/10 && digital > INT_MAX%10) 
			:  (result == (INT_MAX +1)/10 && digital > (INT_MAX+1)%10) 
			)
		{
			return sign > 0 ? INT_MAX : INT_MIN;
		}
		result = result*10 + digital
		++str;
	}

	return ((int)result) * sign;
}

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 10
码字总数 2794
作品 0
海淀
程序员
私信 提问
字符串与其他基本类型的转换——从C到C++11

转自 IBM 编译器中国开发团队的《C++11中的string - atoi/itoa》 在C++11中,由于右值引用的引入,常为人所诟病std::string的性能问题得到了很大的改善。另外一方面,我们也可以看到新语言为...

人不知
2014/09/19
0
2
LeetCode:String to Integer (atoi) - 字符串到数字的转换

1、题目名称 String to Integer (atoi) (字符串到数字的转换) 2、题目地址 https://leetcode.com/problems/string-to-integer-atoi/ 3、题目内容 英文:Implement atoi to convert a strin......

北风其凉
2015/07/31
0
0
C Primer Plus 第11章 11.9 把字符串转换为数字

数字即能以字符串形式也能 以数字形式存储。以字符串形式存储数字就是存储数字字符。例如,数字213即能以数字'2'、‘1’、‘3’、‘0’的形式存储在一个字符串数组中。以数字形式存储213意味...

idreamo
2016/08/29
28
0
leetcode -- String to Integer (atoi)

String to Integer (atoi) Description Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do not ......

leiline
2017/11/07
0
0
C/C++ atoi、atof与itoa函数的实现

1.atoi(ascii to integer)是把字符串转换成整型数的一个函数.atoi()函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。 int atoi(char s[]){int i, n;n = 0;for (i = 0...

GUI1259802368
2017/10/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

KaliLinuxNetHunter教程下载相关资源

KaliLinuxNetHunter教程下载相关资源 当用户将刷机工具准备完后,则需要下载ROM包。ROM是ROM image(只读内存镜像)的简称,常用于手机定制系统。一般手机刷机的过程,就是将只读内存镜像(R...

大学霸
12分钟前
0
0
C# 字符串插值

字符串插值 据说是 C# 6.0 中引入的新特性. 字符串插值允许您以更简洁易读的方式将字符串拼凑在一起. 如果在字符串的左引号前添加$,则可以在字符串中的大括号里包含字符串值,如变量等. 一些示...

taadis
37分钟前
1
0
Navicat使用教程:接收MySQL/MariaDB问题通知

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
38分钟前
2
0
我是怎样和Linux系统结缘并通过红帽RHCE认证的

我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#、C++之类的...

Linux就该这么学
45分钟前
4
0
hbase的web页面访问

hbase1.1版本web页面默认不开放 在hbase-site.xml中加入一下内容即可 <!-- 新增的配置 --><property><name>hbase.master.info.port</name><value>60010</value></property> 借鉴htt......

你为什么不吃药
49分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部