poj 1546 好用的strtol和itoa
这是一个吧A进制数转换为B进制数的问题,如果不用库函数的话,思路清晰但实现起来便有些繁琐了。又因为只有7位数便可以尽情的使用库函数中的strtol和itoa了。
strtol的原型为long strtol(const char* s,char ** endp,int base) 含义是:将base进制的字符串s转换为十进制的函数。endp通常为零,它是处理二进制、十六进制的时候必不可少的函数。
itoa的原型为 char*itoa(int n,char* s,int base) 含义是:把数值n转换为base进制的函数,存进s中。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int m,a,b; char s[10]; while(scanf("%s%d%d",s,&a,&b)!=EOF) { m=strtol(s,0,a); itoa(m,s,b); strlen(s)<=7 ? printf("%7s\n",strupr(s)) : printf(" ERROR\n"); } return 0; }