#include <stdio.h>#defineMaxlinelen 1000intPowerint Base,intN) { intI=0; intAnswer=1; for(i=0; i<n;i++) Answer=answer*Base; returnanswer;}/*strlen function: Returns the length of S*/intStrlenChar*s) {inti; I=0; while(s[i]!=' /') ++i;returni;}/*getline function*/voidGetlines (Char*s) { intI=0; intlim=Maxlinelen;intC; for(i=0; i<lim-1&& (C=getchar ())! ='\ n'&&c!=eof;i++) S[i]=C;}/*hexalpha_to_int function: Convert a single char to int*/intHexalpha_to_int (intc) { if(c>='0'&&c<='9') C=c-'0'; Else if(c>='a'&&c<='Z') C=c-'a'+Ten; Else if(c>='A'&&c<='Z') C=c-'A'+Ten; returnC;}/**/intHtoi (Chars[]) { intLen;inti; Len=strlen (s);intAnswer=0; if(s[0]=='0'&& (s[1]=='X'|| s[1]=='x')) { for(i=2; i<len;i++) {Answer=hexalpha_to_int (S[i]) *power ( -, len-1-I.) +answer; } } Else { for(i=0; i<len;i++) {Answer=hexalpha_to_int (S[i]) *power ( -, len-1-I.) +answer; printf ("i:%d\n", i); printf ("Hexalpha_to_int (S[i]):%d\n", Hexalpha_to_int (S[i])); printf ("Power (16,len-1-i):%d\n", Power ( -, len-1-i)); printf ("answer:%d\n", answer); } } returnanswer;} Main () {CharS[maxlinelen]; Getlines (s); printf ("%d\n", Htoi (s));}
The C programming language 2-3