zoukankan      html  css  js  c++  java
  • itoa函数递归实现

      库函数中有atoi函数,用意是将字符形式输入的数据转换成数字,而库函数有没有提供一个将数字转换成字符的函数呢?答案是有的,而且功能很是强大,那就是sprintf()、snprintf()格式化转换函数,它的原型是: 

    int sprintf(char *buf,const char *format,...) 
    int snprintf(char *buf,int size,const char *format,...) 

    以上都是将数字转换成字符的形式的标准库函数。

    那么有没有别的自己实现的函数呢?好看看下面递归实现的:

    void _itoa(int value,char *str,int radix)
    {
        char temp[2]=" ";
        int a=0;
        if (value>0)
        {
            if(radix == 2){
                _itoa(value/2,str,2);
                temp[0]=(char)(value%2+'0');
                strcat(str,temp);
            }
            else if(radix == 8){
                _itoa(value/8,str,8);
                temp[0]=(char)(value%8+'0');
                strcat(str,temp);
            }
          else if(radix == 16){
                _itoa(value/16,str,16);
                a=value%16;
                if(a<=9)
                    temp[0] = a +'0';
                else
                     temp[0] =(char) (a+55);   
                strcat(str,temp);
            }  
            else {
                _itoa(value/10,str,10);
                temp[0]=(char)(value%10+'0');
                strcat(str,temp);
            }
        }
        else 
            return ;
    }                        

    该函数可以将一个十进制的正整数转换成二进制、十进制、八进制、十六进制形式的字符串

     

  • 相关阅读:
    Dictionary集合 字典
    装箱和拆箱
    List< >泛型集合
    Hashtable 键值对集合
    File 类 的基本操作
    简体转换繁体
    ArrayList集合长度的问题
    ArrayList  集合
    里式转换
    字符串中常用的方法
  • 原文地址:https://www.cnblogs.com/chengliangsheng/p/3600771.html
Copyright © 2011-2022 走看看