输入一个以回车符结束的字符串(少于100个),过滤去所有的非十六进制字符后,组成一个新字符(十六进制形式),输出该字符串并将其转换为十进制数后输出。
#include <stdio.h>
//进制转换
int main()
{
char s[100],ch;
int i=0,j,sum=0;
while ((ch=getchar())!='\n')
{
if ((ch>='0' && ch<='9') || (ch>='a' && ch<='f')||(ch>='A' && ch<='F'))
{
s[i]=ch;
i++;
printf("%c",ch);
}
}
s[i]='\0';
for (j=0;j<i;j++)
{
if (s[j]>='a'&& s[j]<='f')
{
sum= sum *16+s[j]-'a'+10;
} else if (s[j]>='0'&& s[j]<='9')
{
sum= sum*16+s[j]-'0';
}else
{
sum= sum*16+s[j]-'A';
}
}
printf("\n%d",sum);
return 0;
}