自定义itoa函数,实现各种进制的自由转换

本文介绍了一个自定义的itoa函数,该函数能够将整数转换为不同进制的字符串表示形式,包括十进制、八进制和十六进制。通过具体的代码示例展示了如何使用这个函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

ContractedBlock.gif ExpandedBlockStart.gif 代码
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/archive/2010/03/31/1701762.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值