这里有两个考察点,一个是进制转换,还有一个是以字符串输出
知识点:
sprintf(参数一,参数二,参数三)
将参数三按参数二的格式转换后存入参数一中
sprintf与printf用法基本一样,只是sprintf是将值打印到指定字符串中,而printf是直接输出
注意点:
转十进制时传入的是字符数组,每个位的要转换为int并且减去‘0’才能正确运算,不然得到的是ASCII值
//八进制字符串转十六进制字符串
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
//八进制转十进制整数
int change(char *a){
int sum=0,i;
for(i=0;a[i]!='\0';i++){
sum=sum*8+(int)(a[i]-'0');
}
return sum;
}
int main(){
//读入一个八进制字符串
char a[1000];
gets(a);
char str2[1000];
sprintf(str2,"%x",change(a));// 转换位十六进制字符串存入str2中
printf("%s",str2);
return 0;
}