A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Beacon 中级黑马   /  2014-10-26 23:16  /  1149 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

长夜漫漫,无心睡眠,大家一起学习喔!!!
  1. int my_atoi(char *s)
  2. {
  3.         int f = 1;
  4.         int num = 0;
  5.         char *ptr = s;
  6.         while(isspace(*ptr))
  7.                 ptr++;
  8.         if(*ptr == '-')
  9.                 f = -1;
  10.         if(*ptr=='-' || *ptr=='+')
  11.                 ptr++;
  12.         while(*ptr>='0' && *ptr<='9')
  13.         {
  14.                 num = num * 10 + (*ptr-'0');
  15.                 ptr++;
  16.         }
  17.         return f*num;
  18. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

6 个回复

倒序浏览
楼主的代码风格能不这么写嘛?看着好费劲,这在工作中会被骂的,而且时间长了自己看自己的代码都会搞不清楚
回复 使用道具 举报
keep_flying 发表于 2014-10-27 00:06
楼主的代码风格能不这么写嘛?看着好费劲,这在工作中会被骂的,而且时间长了自己看自己的代码都会搞不清楚 ...

额 我的代码除了没写注释之外 哪里不妥呢??还请大神指教啊。。。。
回复 使用道具 举报
逻辑貌似有点混乱
回复 使用道具 举报
菜鸟_琦 发表于 2014-10-27 10:45
逻辑貌似有点混乱

你看不明白? 就是一个指针读字符串的 然后转换数字 有神马不明白的???
回复 使用道具 举报
Beacon 发表于 2014-10-27 10:48
你看不明白? 就是一个指针读字符串的 然后转换数字 有神马不明白的??? ...

我道行不够深,但是总觉得不对,两个if感觉判断重复,而且这样的结构混乱
回复 使用道具 举报
Beacon 中级黑马 2014-10-27 11:18:17
7#
菜鸟_琦 发表于 2014-10-27 11:15
我道行不够深,但是总觉得不对,两个if感觉判断重复,而且这样的结构混乱 ...

比如输入的是 "-658" 读到-的时候就用标志变量f记录为-1 然后指针++向后读啊。。num是计算整个数的 最后num*f 就是转换后的-658  你调试一下 或者一步一步的跟一下程序。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马