Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1124391
  • 博文数量: 241
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 2383
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-07 23:13
文章分类

全部博文(241)

文章存档

2013年(1)

2012年(8)

2011年(62)

2010年(109)

2009年(61)

分类: C/C++

2009-07-23 12:14:46

点击(此处)折叠或打开

  1. #include <stdio.h>

  2. char *int2str(int value, char *string, int radix)
  3. {
  4.     int v = 0, x = 0, i =0;
  5.     char tmp[33] = {0};
  6.     char *pStr = string;

  7.     /* save sign */
  8.     if(value < 0)
  9.     {
  10.         value = -value;

  11.         *pStr++ = '-';
  12.     }

  13.     /* calc & save to tmp[] */
  14.     v = value;
  15.     while(v > 0)
  16.     {
  17.         x = v % radix;
  18.         v = v / radix;
  19.         
  20.         if(x < 10)
  21.         {
  22.             tmp[i++] = x + '0';
  23.         }
  24.         else
  25.         {
  26.             tmp[i++] = x + 'a' - 10;
  27.         }
  28.     }
  29.     --i;

  30.     while(i >= 0)
  31.     {
  32.         *pStr++ = tmp[i--];
  33.     }

  34.     return string;
  35. }

  36. int main()
  37. {
  38.     char *ret = NULL;
  39.     char str1[10] = {0};
  40.     char str2[10] = {0};

  41.     ret = int2str(-12, str1, 10);
  42.     ret = int2str(12, str2, 16);

  43.     return 0;
  44. }

阅读(637) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~