输入:
Enter 16 进制的数:14B
输出: 331
#include"stdio.h"
#define N 50
long fun(char*s) {
int i,t;
long sum=0;
for(i=0;s[i];i++) {
if(s[i]>= '0' &&s[i]<='9')//当字符是'0'--'9'时,*-‘0'就行了
t=s[i]-'0';
if(s[i]>='a'&&s[i]<='z')
t=s[i]-'a'+10;//当字符是 abcdef 时,*-‘a’+10 就行了
if(s[i]>='A'&&s[i]<='Z')
t=s[i]-'A'+10;//当字符是 ABCDEF 时,*-‘A’+10 就行了
sum=sum*16+t;
}
return sum;
}
int main(void) //本题先定义一个数组来保存输入的数,数采用以字符串的方式输入,
{ //利用字符串与字符数组相结合的方式
int m;
char s[N];
printf("Enter16 进制的数:");
scanf("%s",s);
m=fun(s);
printf("%ld",m);
}