1.将字符串转换成10进制数字
/* function: 将大写字母转换成小写字母 parameter: s: 待转换的字符串 return: 转换成功的数值 */ int atoi(char s[]) { int i; int num = 0; for (i = 0; s[i] >= '0' && s[i] <= '9'; i++) { num = 10 * num +(s[i] - '0'); } return num; }
2.将字符串转换成16进制数字
十六进制数的字符串形式是指字符串只包含'0'-'9'或者'a'-'z'或者'A'-'Z',前导“0x”或者“0X”是否出现都可以。 /* function: 将大写字母转换成小写字母 parameter: a: 待转换的字符 return: 转换成功的字符 */ char tolower(char a) { if(a >= 'A' && a <= 'Z') return a - 'A' + 'a'; else return a; } /* function: 将字符串转换成16进制 parameter: s: 待转换的字符串 return: 转换成功的数值 */ int htoi(char s[]) { int i; int num = 0; if(s[0] == '0' && (s[1] == 'X' || s[1] == 'x')) i = 2; else i = 0; for(;( s[i] >= '0' && s[i] <= '9' ) || ( s[i] >= 'a' && s[i] <= 'z' ) || ( s[i] >= 'A' && s[i] <= 'Z' ) ; i++ ) { if(tolower(s[i] > '9')) num = 16 * num + ( 10 + tolower(s[i]) - 'a' ); else num = 16 * num + ( tolower(s[i]) - '0' ); } return num; }