注意不是字符串,是十六进制数啊。#include <stdio.h>#define MAX 1000int htoi(char s[]){int i,n=0;for(i=0;s[i]!='\0';i++) {if(s[i]>='0'&&s[i]<='9') n=n*16+s[i]-'0';if(s[i]>='a'&&s[i]<='f') 展开
注意不是字符串,是十六进制数啊。#include <stdio.h>#define MAX 1000int htoi(char s[]){int i,n=0;for(i=0;s[i]!='\0';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;}main(){int c,i;char t[MAX];i=0;printf("input a hex number:\n");while((c=getchar())!='\n'&&i<MAX) if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F') {t[i]=c;i++;} t[i]='\0';printf("----------------------------------------\n");printf("the hex number you have put is %s\n",t);printf("so decimal number is: %d\n",htoi(t));printf("----------------------------------------\n");} 收起