zoukankan      html  css  js  c++  java
  • 自定义itoa函数,实现各种进制的自由转换

    自己定义写的itoa函数,实现各种进制的转换。下面直接上代码

    代码
    1 #include<iostream>
    2  using namespace std;
    3  /*自定义itoa函数*/
    4  char* myitoa(int x,char *str,int l);
    5  void main()
    6 {
    7
    8 int s=0;
    9 char d[10];
    10 cout<<"输入:";
    11 cin>>s;
    12 myitoa(s,d,10);//十进制
    13 cout<<"十进制:"<<d<<endl;
    14 myitoa(s,d,8);//十进制
    15 cout<<"八进制:"<<d<<endl;
    16 myitoa(s,d,16);//十进制
    17 cout<<"十六进制:"<<d<<endl;
    18 }
    19
    20 char* myitoa(int x,char *ptr,int l)
    21 {
    22 const char table[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//有点像字典查询方式
    23 bool flag=true;
    24 char *str=ptr;
    25 if(x==0)
    26 {
    27 *str++='0';
    28 *str='\0';
    29 return str;
    30 }
    31 if(x<0)
    32 {
    33 *str++='-';
    34 x=-x;
    35 flag=false;
    36 }
    37 while(x)
    38 {
    39 *str++=table[x%l]; //对应进制
    40 x=x/l;
    41 }
    42 *str='\0';
    43 char *start = flag?ptr:ptr+1;
    44 str--;
    45 /*反序输出*/
    46 while(start<str)
    47 {
    48 char tmp=*start;
    49 *start=*str;
    50 *str=tmp;
    51 start++;
    52 str--;
    53 }
    54
    55 return ptr;
    56
    57 }
    58

    首发:http://www.5dkx.com/arch/64.html

     

    非特别说明均为原创文章如转载,请注明:转载自 5D开心博客 [ http://www.5DKX.com/ ]

  • 相关阅读:
    loj10008家庭作业
    loj10006数列分段
    loj10005数列极差
    loj10004智力大冲浪
    codevs 1996 矿场搭建
    11.3 上午考试
    11.2 晚上考试
    11.2 下午考试
    11.2 上午考试
    11.1 下午考试
  • 原文地址:https://www.cnblogs.com/5dkx/p/1701762.html
Copyright © 2011-2022 走看看