输入一个以回车结束的字符串,滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出。
【输出形式】输出为两行
第一行为整理后的新串
第二行为一个十进制数字
【输入输出样例】
【问题分析】通过C语言实现进制转换,可拓展到其他进制转化为十进制(注:十六进制中用A~F(或a~f)表示10~15)
【代码实现】
#include #include #define N 100int main(){ char a[N]; int i=0,re=0; printf("Enter a string:"); gets(a); printf("New string:"); while(a[i]) //当读取到输入的最后一个字符之后,读取到0,跳出循环 { if(a[i]>='0'&&a[i]='a'&&a[i]='A'&&a[i]<='F'){printf("%c",a[i]);re=re*16+a[i]+10-'A'; }//a[i]-'A'利用ASCII码值差值求该位的值 i++; //从最高位依次往低一位遍历 } printf("\nnumber=%d",re); return 0;}