zoukankan      html  css  js  c++  java
  • itoa()和atoi()函数详解

    itoa():

    将整型值转换为字符串

    头文件stdio.h 或 stdlib.h

    itoa()函数有3个参数:

    第一个参数是要转换的数字,

    第二个参数是要写入转换结果的目标字符串,

    第三个参数是转移数字时所用 的基数。转换基数为10。10:十进制;2:二进制...

    itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。可以跟sprintf相互使用。

    C语言实现:

    char* itoa(int num,char* str,int radix)
    {/*索引表*/
        char index[]="0123456789ABCDEF";
        unsigned unum;/*中间变量*/
        int i=0,j,k;
        /*确定unum的值*/
        if(radix==10&&num<0)/*十进制负数*/
        {
            unum=(unsigned)-num;
            str[i++]='-';
        }
        else unum=(unsigned)num;/*其他情况*/
        /*转换*/
        do{
            str[i++]=index[unum%(unsigned)radix];
            unum/=radix;
           }while(unum);
        str[i]='';
        /*逆序*/
        if(str[0]=='-')
            k=1;/*十进制负数*/
        else
            k=0;
         
        for(j=k;j<=(i-1)/2;j++)
        {       char temp;
            temp=str[j];
            str[j]=str[i-1+k-j];
            str[i-1+k-j]=temp;
        }
        return str;
    }

    atoi():


    把字符串转换成整型

    C语言实现:

    int my_atoi(const char *src)
    {
          int s = 0;
          bool isMinus = false;
      
          while(*src == ' ')  //跳过空白符
          {
              src++; 
          }
      
          if(*src == '+' || *src == '-')
          {
              if(*src == '-')
              {
                  isMinus = true;
              }
              src++;
          }
          else if(*src < '0' || *src > '9')  //如果第一位既不是符号也不是数字,直接返回异常值
          {
              s = 2147483647;
              return s;
          }
      
          while(*src != '' && *src >= '0' && *src <= '9')
          {
              s = s * 10 + *src - '0';
              src++;
          }
          return s * (isMinus ? -1 : 1);
     }
  • 相关阅读:
    字符串套餐(更新中)
    洛谷P4145 上帝造题的七分钟2 / 花神游历各国(重题:洛谷SP2713 GSS4
    [AHOI2013]作业
    我的配置
    [HAOI2006]受欢迎的牛
    洛谷P1456Monkey King
    洛谷P2331[SCOI2005]最大子矩阵
    如何更换博客背景
    洛谷P2419 [USACO08JAN]牛大赛Cow Contest
    JS正则表达式验证数字
  • 原文地址:https://www.cnblogs.com/zjx123/p/12869691.html
Copyright © 2011-2022 走看看