#include<stdio.h>
#include<string.h>
void main(){
char c[80],a[80];
int i=0,j=0,b[80],m=0;
while((c[i]=getchar())!='\n'){ //去掉非十六进制
if((c[i]>='a'&&c[i]<='f')||(c[i]>='A'&&c[i]<='F')||(c[i]>='0'&&c[i]<='9'))
a[j++]=c[i++];
}
a[j]='\0';
printf("%s\n",a);
i=0;
while(a[i]!='\0'){ //将十六进制转换为整数
if(a[i]>='a'&&a[i]<='z')
b[i]=a[i]-'a'+10;
if(a[i]>='A'&&a[i]<='Z')
b[i]=a[i]-'A'+10;
if(a[i]>='0'&&a[i]<='9')
b[i]=a[i]-'0';
i++;
}
for(j=0;j<i;j++) //将十六进制转换为十进制
m=m*16+b[j];
printf("%d",m);
}
c语言 输入一个以回车结束的字符串(少于80个字符),过滤掉所有的非十六进制数后,组成一个新的字符串(十六进制形式),输出该字符串并将其转换为十进制输出
于 2022-05-22 17:24:11 首次发布