Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4841721
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: C/C++

2009-06-28 13:25:46


[root@localhost bishi]# cat itoa.c
#include <stdio.h>
#include <stdlib.h>

char* itoa(int value, char* str, int radix)
{
 static char dig[] ="0123456789"
                    "abcdefghijklmnopqrstuvwxyz";

int n = 0, neg = 0;
unsigned int v;
char* p;
char* q;
char c;

if (radix == 10 && value < 0) {
   value = -value;
   neg = 1;
}
v = value;
do {
 str[n++] = dig[v%radix];
 v /= radix;
} while (v);

if (neg)
 str[n++] = '-';
str[n] = '\0';

for (p = str, q = p+n-1; (p<q)&&(*q!='\0'); ++p, --q)
  {
   c = *p;
   *p = *q;
   *q = c;
  }
return str;
}

int main(int argc,char** argv)
{
 char str[32];
 if(argc != 3)
  {
   printf("Usage:%s num radix\n",argv[0]);
   return -1;
   }

 int i = atoi(argv[1]);
 int j = atoi(argv[2]);

 if(j>16)
  {
   printf("radix error\n");
   return -1;
  }

 itoa(i,str,j);
 printf("num:%d radix:%d str is %s\n",i,j,str);
 return 0;
}

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

chinaunix网友2009-10-20 00:22:52

讨厌没有一丁点儿说明~~~