Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1788954
  • 博文数量: 335
  • 博客积分: 4690
  • 博客等级: 上校
  • 技术积分: 4341
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 21:38
个人简介

无聊之人--除了技术,还是技术,你懂得

文章分类

全部博文(335)

文章存档

2016年(29)

2015年(18)

2014年(7)

2013年(86)

2012年(90)

2011年(105)

分类: C/C++

2011-10-08 18:21:36

  1. #include <ctype.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <assert.h>
  5. #define OK 0
  6. int myatoi(char *);
  7. int improvedatoi(char *);
  8. int main(int argc,char **){
  9. printf("input string is :12345 and +123 and -456 and -1*891 and -*\r\n");
  10. printf("%d\t%d\t%d\t%d\t%d\t\r\n",myatoi("12345"),myatoi("+123"),myatoi("-456"),myatoi("-1*891"),myatoi("-*"));
  11. printf("%d\t%d\t%d\t%d\t%d\t\r\n ",improvedatoi("12345"),improvedatoi("+123"),improvedatoi("-456"),improvedatoi("-1*891"),improvedatoi("-*"));
  12. getchar();
  13. return OK;
  14. }
  15. int myatoi(char * s){
  16. assert(s);
  17. int i,n;
  18. n = 0;
  19. for(i = 0;s[i] >= '0' && s[i]<= '9';i++){
  20. n=10*n+(s[i]-'0');
  21. }
  22. return n;
  23. }
  24. int improvedatoi(char * s){
  25. assert(s);
  26. int i,n,sign;
  27. for(i=0;isspace(s[i]);i++){
  28. ;
  29. }
  30. sign =(s[i] == '-') ? -1 : 1;
  31. if(s[i] == '+' || s[i] == '-')
  32. i++;
  33. for(n = 0;isdigit(s[i]);i++){
  34. n=10*n+(s[i]-'0');
  35. }
  36. return sign*n;
  37. }
阅读(1140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~