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;
}
posted @ 2011-09-02 20:44  书山有路,学海无涯  阅读(332)  评论(0编辑  收藏  举报