输入一个十六进制数,输出相应的十进制数

xiaoxiao2021-02-28  120

#include <stdio.h>#include <stdlib.h>#include <string.h>#define max 10/* 写出一个函数、输入一个十六进制数,输出相应的十进制数*/int main(int argc, char *argv[]) { int intergrity(char s[]); printf("input:\n"); int i=0; char str[max]; char c; int transnum; while((c=getchar())!='\0'&&i<max)  //do not write as c=getchar()!='\0', the correct one is (c=getchar())!='\0' { if((c>='0'&&c<='9')||(c>='A'&&c<='F')||(c>='a'&&c<='f')) { str[i++]=c; } else  { str[i]='\0';// write str[i]='\0' ,or will be the wrong thing  break; //important } } printf("after the transformation:\n");    transnum=integrity(str);    printf("%d",transnum);    //输出转换后的数字  return 0;}int integrity(char s[]){ int i; int n=0; for(i=0;i<max;++i) { if(s[i]>='0'&&s[i]<='9') { n=n*16+s[i]-'0'; } if(s[i]>='a'&&s[i]<='f') { n=n*16+s[i]-'a'+10; } if(s[i]>='A'&&s[i]<='F') { n=n*16+s[i]-'A'+10; } } return n;

转载请注明原文地址: https://www.6miu.com/read-2624933.html

最新回复(0)