zoukankan      html  css  js  c++  java
  • 将一串字符串数字转化为整型数字

    上篇文章介绍了itoa函数的实现,今天来说说atoi函数,主要思路是:将字符串从头开始读取,跳过最前面的空格以及其他无用字符;遇到正负号,做标记;之后的字符串,遇到数字则转换,遇到其他字符则直接跳出。好了,贴下代码:

     1 int atoi(char str[])
     2 {
     3         int flag=0;
     4         int num=0;
     5         int i=0;
     6         while(str[i]==' '||str[i]=='	')                //判断字符串开头是否为制表符或者空格
     7         {
     8                 i++;
     9         }
    10         while(str[i]=='-'||str[i]=='+')                 //判断字符串数字的正负
    11                 {
    12                         if(str[i]=='-')
    13                         {
    14                                 flag=1;                 //为负的则标记
    15                         }
    16                         i++;
    17                 }
    18         while(str[i]!='')                             //读字符串直到结尾
    19         {
    20                 if(str[i]>='0'&&str[i]<='9')            //判断字符是否为数字
    21                         {
    22                                 num=str[i]-'0'+num*10;  //将字符转化为数字
    23                                 i++;
    24                         }
    25                 else                                    //如果字符串中有其他字符直接跳出
    26                         break;
    27         }
    28         if(flag==1)
    29         num=-num;                                       //如果有标记,将数字变为负数
    30         printf("%d",num);
    31         return 0;
    32 }

    好了,应该能理解,最关键的在22行,将字符串数字转换为整型数字,OK。

  • 相关阅读:
    [Violet]蒲公英
    CF535-Div3
    逛公园
    exgcd
    线段树套线段树
    Luogu P2730 魔板 Magic Squares
    fhqtreap
    AtCoder Beginner Contest 115
    关于这个博客
    智障错误盘点
  • 原文地址:https://www.cnblogs.com/kingos/p/4510503.html
Copyright © 2011-2022 走看看