博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典面试题 atoi&itoa
阅读量:5876 次
发布时间:2019-06-19

本文共 1180 字,大约阅读时间需要 3 分钟。

 

long  atol(const char *nptr){	int c; /* current char */	long total; /* current total */	int sign; /* if ''-'', then negative, otherwise positive */	/* skip whitespace */	while ( isspace((int)(unsigned char)*nptr) )	++nptr;	c = (int)(unsigned char)*nptr++;	sign = c; 	if (c == ''-'' || c == ''+'')		c = (int)(unsigned char)*nptr++; 	total = 0;	while (isdigit(c)) {	total = 10 * total + (c - ''0''); /* accumulate digit */	c = (int)(unsigned char)*nptr++; /* get next char */	}	if (sign == ''-'')		return -total;	else		return total; /* return result, negated if necessary */}

 

 

char* _itoa(int value, char* string, int radix){	char tmp[33];	char* tp = tmp;	int i;	unsigned v;	int sign;	char* sp;	if (radix > 36 || radix <= 1)	{		__set_errno(EDOM);		return 0;	}	sign = (radix == 10 && value < 0);	if (sign)		v = -value;	else		v = (unsigned)value;	while (v || tp == tmp)	{	i = v % radix;	v = v / radix;	if (i < 10)		*tp++ = i+''0'';	else		*tp++ = i + ''a'' - 10;	}	if (string == 0)		string = (char*)malloc((tp-tmp)+sign+1);	sp = string;	if (sign)		*sp++ = ''-'';	while (tp > tmp)	*sp++ = *--tp;	*sp = 0;		return string;}

转载于:https://www.cnblogs.com/caleb/archive/2011/09/13/2174967.html

你可能感兴趣的文章
RouterOS实战:pppoe上网、web服务、远程管理
查看>>
实战Gradle——第二部分 掌握基础知识
查看>>
个别重要的网站链接(更新中)
查看>>
Tomcat源码解读系列——Tomcat的核心组成和启动过程
查看>>
mysql8默认时区不正确
查看>>
我的友情链接
查看>>
CSS:IE,Chrome,Firefox兼容性和CSS Hack
查看>>
fdisk
查看>>
在linux下实现LVM
查看>>
Android中文API(116)——TableLayout
查看>>
如何使用通过 SA账户远程登录到SQL数据库
查看>>
IT软件项目心得
查看>>
ASP.NET画直方图
查看>>
我的友情链接
查看>>
jquery 实现下拉菜单
查看>>
grep找出不包含指定字符的文件名
查看>>
实现底部导航栏及切换tab重新加载的问题解决
查看>>
[推荐]如何保护Web站点免受跨站点脚本***?
查看>>
CentOS 6.2 编译Apache使其支持HTTPS
查看>>
用cronolog分割tomcat的catalina.out文件
查看>>