问题描述:
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
这是我遇到的问题,我的想法是:
做一个像数组一样的字符串,这样的话,像对数组处理的方式一样,利用遍历的方法,就可以直接对整个字符串进行处理了。可是如何定义呢?
int n;
scanf("%d",&n);
string str[n]; //这样做,不对呀
C语言中没有string,若想使用字符串,必须要用char型数组,比如char a[5]="hello",不能使用string a="hello",C++可以
printf("%o\n",&a);//以8进制数的格式输出
任何进制数都是整数,计算机在存储的时候都是0和1,进制数只是一种标识方式,
其实 你不用要字符串去存储所谓的16进制数,比如:字符串“ff1”它转换为整形数并不是你想要的结果!
如果你要输入16进制数,可以这样:
int a;
scanf("%x",&a);//以16进制的格式输入
printf("%x",a);//以16进制数的格式输出