雁过无痕

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::


看到别人的讨论贴,也做了下。题目很简单,可以直接用标准库函数,也可以自已造轮子。标准库中能用到的只有:
atoi / strtol系列,显然得用 strtol(有些库atoi就是用strtol实现的)

在用strtol前,先要对不安全的strtol封装下。

 

int str2i(const char str[], const char* &next, int base = 10)

{

  return strtol(str, const_cast<char**>(&next), base);

}

 

可采用两种算法:

  1 先忽略空白字符,然后直接调用str2i (代码 solve1

  2 先找到合法数字的第一个字符,再调用str2i(代码 solve2

当然也可以自行实现strtol(代码: solve3solve4)。


posted on 2011-03-31 23:56 flyinghearts 阅读(2261) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理