请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.
File name:
Author:Jerey_Jobs    Version:0.1    Date:
Description:
Funcion List:
*****************************************************/

#include

int fun2(int num);
int fun16(int num);
int fun8(int num);

int main()
{
    int num,kind;    //定义变量num取用户输入整数,kind取用户需要变换的进制

 printf("Enter the number : \n");        //提示用户输入
 scanf("%d",&num);
 printf("what kind of number do you want to change(2 or 16 or 8) :\n");
 scanf("%d",&kind);

 if(kind == 2)       //根据用户需求进行变换
 {
  fun2(num);
 }
 else if(kind == 16)
 {
  fun16(num);
 }
 else if(kind == 8)
 {
  fun8(num);
 }
 else        //当用户输入不正确时,给出报错信息
 {
  printf("error!\n");
 }
    return 0;
}


int fun2(int num)        //二进制转换
{
 int s[32] = {0};
 int i,n = 0;
 while(num != 0)
 {
  s[n++] = num % 2;
  num = num / 2;
 }
 printf("二进制数为 :");
 for(i = n - 1;i >= 0;i--)
 {
  printf("%d",s[i]);
 }
 printf("\n");
 return 0;
}

int fun16(int num)         //十六进制转换
{
 int s[32] = {0};
 int i,n = 0;
 while(num != 0)
 {
  s[n++] = num % 16;
  num = num / 16;
 }
 printf("十六进制数为 :");
 for(i = n - 1;i >= 0;i--)
 {
  printf("%d",s[i]);
 }
 printf("\n");
 return 0;
}

int fun8(int num)        //八进制转换
{
 int s[32] = {0};
 int i,n = 0;
 while(num != 0)
 {
  s[n++] = num % 8;
  num = num / 8;
 }
 printf("八进制数为 :");
 for(i = n - 1;i >= 0;i--)
 {
  printf("%d",s[i]);
 }
 printf("\n");
 return 0;
}

你可能感兴趣的:(请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出)