在中科方德面试的时候,出了这么一道题:
编写库函数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
阅读(465) | 评论(0) | 转发(0) |