黑马程序员技术交流社区

标题: 关于字符串转数字的函数,大家一起学习~~ [打印本页]

作者: Beacon    时间: 2014-10-26 23:16
标题: 关于字符串转数字的函数,大家一起学习~~
长夜漫漫,无心睡眠,大家一起学习喔!!!
  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. }
复制代码



作者: keep_flying    时间: 2014-10-27 00:06
楼主的代码风格能不这么写嘛?看着好费劲,这在工作中会被骂的,而且时间长了自己看自己的代码都会搞不清楚
作者: Beacon    时间: 2014-10-27 10:35
keep_flying 发表于 2014-10-27 00:06
楼主的代码风格能不这么写嘛?看着好费劲,这在工作中会被骂的,而且时间长了自己看自己的代码都会搞不清楚 ...

额 我的代码除了没写注释之外 哪里不妥呢??还请大神指教啊。。。。
作者: 菜鸟_琦    时间: 2014-10-27 10:45
逻辑貌似有点混乱
作者: Beacon    时间: 2014-10-27 10:48
菜鸟_琦 发表于 2014-10-27 10:45
逻辑貌似有点混乱

你看不明白? 就是一个指针读字符串的 然后转换数字 有神马不明白的???
作者: 菜鸟_琦    时间: 2014-10-27 11:15
Beacon 发表于 2014-10-27 10:48
你看不明白? 就是一个指针读字符串的 然后转换数字 有神马不明白的??? ...

我道行不够深,但是总觉得不对,两个if感觉判断重复,而且这样的结构混乱
作者: Beacon    时间: 2014-10-27 11:18
菜鸟_琦 发表于 2014-10-27 11:15
我道行不够深,但是总觉得不对,两个if感觉判断重复,而且这样的结构混乱 ...

比如输入的是 "-658" 读到-的时候就用标志变量f记录为-1 然后指针++向后读啊。。num是计算整个数的 最后num*f 就是转换后的-658  你调试一下 或者一步一步的跟一下程序。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2