首页 > 其他 > 详细

itoa()和atoi()函数详解

时间:2020-05-11 16:07:19      阅读:59      评论:0      收藏:0      [点我收藏+]

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]=\0;
    /*逆序*/
    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 != \0 && *src >= 0 && *src <= 9)
      {
          s = s * 10 + *src - 0;
          src++;
      }
      return s * (isMinus ? -1 : 1);
 }

 

itoa()和atoi()函数详解

原文:https://www.cnblogs.com/zjx123/p/12869691.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!