自定义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/ ]

原文地址:https://www.cnblogs.com/5dkx/p/1701762.html