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;
}
浙公网安备 33010602011771号