zoukankan      html  css  js  c++  java
  • atoi和itoa函数的实现方法

    atoi的实现

    #include<iostream>

    using namespace std;

    int atio1(char *s)

    {

    int sign=1,num=0;

        if(*s=='-')

            sign=-1;

        s++;

        while((*s)!='')

        {

            num=num*10+(*s-'0');

            s++;

        }   

        return num*sign;   

    }

     

     

    itoa的实现

    1:

    void itoa(int value, char *str)

    {   

     if (value < 0)                                                       //如果是负数,则str[0]='-',并把value取反(变成正整数)  

        {        

        str[0] = '-';        

        value = 0-value;   

        } 

    int i,j;    

    for(i=1; value > 0; i++,value/=10)                         //从value[1]开始存放value,不过是逆序          

           str[i] = value%10+'0';                                    //将数字加上0的ASCII值(即'0')得到ASCII值   

     for(j=i-1,i=1; j-i>=1; j--,i++)                                 //将数字字符反序存放   

       {       

        str[i] = str[i]^str[j];        

        str[j] = str[i]^str[j];        

        str[i] = str[i]^str[j];   

       }    

    if(str[0] != '-')                                                         //如果不是负数,则需要把数字字符下标左移一位 

       {       

         for(i=0; str[i+1]!=''; i++)           

         str[i] = str[i+1];     

         str[i] = '';   

       }

    }

     

    法2:

    char *itoa(int num, char *str, int radix)

    {

        char* ptr = str;

        int i;

        int j;

        while (num)

        {

            *ptr++  = string[num % radix];

            num    /= radix;

            if (num < radix)

            {

                *ptr++  = string[num];

                *ptr    = '';

                break;

            }

        }

        j = ptr - str - 1;

        for (i = 0; i < (ptr - str) / 2; i++)

        {

            int temp = str[i];

            str[i]  = str[j];

            str[j--] = temp;

        }

        return str;

    }

     

     

     

  • 相关阅读:
    手机缺失sqlite3时操作数据库的多种解决方案 ----adb命令科普
    adb root错误信息adbd cannot run as root in production builds问题解决
    Android Studio中导入v4,v7和recyclerview-v7包的方法
    AndroidStudio项目提交到github最详细步骤
    Android微信开放平台,申请移动应用的 应用签名 如何获取
    利用Intent.ACTION_SEND进行分享
    51nod 1737配对
    UTR#2 T1
    bzoj4571: [Scoi2016]美味
    bzoj2006: [NOI2010]超级钢琴
  • 原文地址:https://www.cnblogs.com/xuhj001/p/3427670.html
Copyright © 2011-2022 走看看