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

来源:互联网 发布:c语言if语句怎么用 编辑:程序博客网 时间:2024/05/23 20:40
include<stdio.h>#include<string.h>#define N 10void strRev(char *s){char temp;char *end = s + strlen(s) - 1;while (end > s){temp = *s;*s = *end;*end = temp;--end;++s;}}void sixteen(char *s, int n){char *p = s;while(n != 0)    {switch(n % 16){case 0: *p = '0';break;        case 1: *p = '1';break;case 2: *p = '2';break;case 3: *p = '3';break;    case 4: *p = '4';break;        case 5: *p = '5';break;        case 6: *p = '6';break;    case 7: *p = '7';break;            case 8: *p = '8';break;        case 9: *p = '9';break;case 10: *p = 'A';break;    case 11: *p = 'B';break;        case 12: *p = 'C';break;case 13: *p = 'D';break;case 14: *p = 'E';break;case 15: *p = 'F';break;}  n = n / 16;    p++;}*p = '\0';}void fun(char *s, int n, int m){char *p = s;if( m == 16){sixteen(s,n);}else{while (n != 0)     {*p = n % m + '0';    n /= m;    p++;    }*p = '\0';}}int main(){int n;int m;char s[N];printf("Enter a number!\n");scanf("%d",&n);printf("Enter scale!\n");scanf("%d",&m);fun(s,n,m);strRev(s);printf("%s\n",s);    return 0;}

0 0
原创粉丝点击