zoukankan      html  css  js  c++  java
  • [笔试面试][code_by_hand]atoi

     一定要手写代码,如果简单觉得题目大致思路知道就可以,到面试时真的会捉急,atoi平时觉得很简单,可是真正写起来要考虑的太多了:1.滤掉前面空格。2.判断字符串开始符号。3.防止溢出。 这些都是原有atoi的操作,最后4.返回bool表示有没有出错的情况,这不是atoi的,是我们自己扩展的功能。

     1 bool my_atoi(const char *p, int &num)
     2 {
     3         if (p==NULL)
     4         {
     5                 return false;
     6         }
     7         while(*p == ' ')
     8         {
     9                 p++;
    10         }
    11         bool neg_flag = false;
    12         long long res=0;
    13         if (*p=='+' || *p=='-')
    14         {
    15                 neg_flag = (*p++ != '+');
    16         }
    17         while (*p>='0' && *p<='9')
    18         {
    19                 res = res*10 + (*p++-'0');
    20                 if (res > 0x7fffffff && !neg_flag)
    21                 {
    22                         num = 0x7fffffff;
    23                         return false;
    24                 }else if (res > 0x80000000 && neg_flag)
    25                 {
    26                         num = 0x80000000;
    27                         return false;
    28                 }
    29         }
    30         num = neg_flag? 0-res : res;
    31         if ( *p!='\0' && (*p>'9' || *p <'0') )
    32         {
    33                 return false;
    34         }
    35         return true;
    36 }
    37 
    38 int main()
    39 {
    40         char arr[100];
    41         int result;
    42         while (1)
    43         {
    44                 scanf("%s", arr);
    45                 my_atoi(arr, result);
    46                 printf("%d %d\n", atoi(arr), result);
    47         }
    48         return 0;
    49 }
  • 相关阅读:
    Python-asyncio
    Python-异步编程
    软件工程个人作业01
    《构建之法》阅读笔记6
    《构建之法》阅读笔记5
    《构建之法》阅读笔记4
    《构建之法》阅读笔记3
    《构建之法》第二章阅读笔记
    《构建之法》第一章阅读笔记
    开发web信息管理系统用到的相关技术
  • 原文地址:https://www.cnblogs.com/wendelhuang/p/3039472.html
Copyright © 2011-2022 走看看