C程序设计语言习题(3-5)
编写函数itob(n,s,b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。e.g.itob(n,s,16)把整数n格式化为十六进制整数保存在s中。
1 #include<stdio.h> 2 #include<ctype.h> 3 #include<string.h> 4 5 void swap(char *a, char *b) 6 { 7 int t; 8 t = *a; 9 *a = *b; 10 *b = t; 11 } 12 13 void reverse(char *s) //倒置串s 14 { 15 int c, i, j; 16 i = 0; 17 j = strlen(s) - 1; 18 while(i < j) { 19 swap(&s[i], &s[j]); 20 i++; 21 j--; 22 } 23 } 24 25 void itob(int n, char *s, int b) 26 { 27 int i, j, sign; 28 i = 0; 29 if((sign = n) < 0) 30 n = -n; 31 do { 32 j = n % b; 33 s[i++] = (j <= 9) ? j + '0' : j - 10 + 'A'; 34 } while((n /= b) > 0); 35 if(sign < 0) s[i++] = '-'; 36 s[i] = '\0'; 37 reverse(s); 38 } 39 40 int main() 41 { 42 char a[1000]; 43 int n, b; 44 n = 1232323; 45 b = 16; 46 itob(n,a,b); 47 printf("%s\n",a); 48 return 0; 49 }
作者:cpoint
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.