poj 1546 好用的strtol和itoa

这是一个吧A进制数转换为B进制数的问题,如果不用库函数的话,思路清晰但实现起来便有些繁琐了。又因为只有7位数便可以尽情的使用库函数中的strtolitoa了。

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;

}

你可能感兴趣的:(poj)