Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611860
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: C/C++

2014-04-09 11:04:46

在中科方德面试的时候,出了这么一道题:

编写库函数atoi(数字字符串 变成 int)

当时我写了好长一个程序,而且自己都知道漏洞百出,简直是个垃圾程序。

今天看linux内核的时候正好遇到了同样的问题,看看大师们是怎么写的:

#define is_digit(c) 
(  (c)>='0' && (c)<='9'  )

static int skip_atoi(const char **s){

   int i = 0 ;

   while( is_digit(**s) ){

      i = i*10 + *((*s)++) - '0' ;
   }

   return i ;
}

就这么几行!

真是太经典了,虽然没有加上异常检测,但是如此简洁的代码包含了如此强大的功能,真是不得不让我佩服。
http://blog.sina.com.cn/s/blog_61869e800100efpg.html
阅读(431) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~