3-5 处理其他进制的itoa函数

来源:互联网 发布:光纤网络布线 编辑:程序博客网 时间:2024/06/06 02:57
#include <stdio.h>#include <stdlib.h>#include <string.h>/*练习3-5*//*将整数转化为b为底数的字符串形式*//*借用了reverse函数,以及*//*仍然使用abs(n%b) 以及 n/=b, 添加了n-10+'A'的分支*/void reverse(char s[]);void itob(int n, char s[], int b);int main(){char b[20] = {0};int a = 31;itob(a, b, 16);printf("%s\n", b);return 0;}void reverse(char s[]){int i, j, c;for(i = 0, j = strlen(s)-1; i < j; i++, j--){c = s[i];s[i] = s[j];s[j] = c;}}void itob(int n, char s[], int b){int i = 0, sign = n;do{if(abs(n%b)<10)s[i++] = abs(n%b) + '0';elses[i++] = abs(n%b) - 10 + 'A';}while(n/=b);if(sign < 0)s[i++] = '-';s[i] = '\0';reverse(s);}


0 0