#include <stdio.h>
//例如,有字符串
//char buf[] = "12AB3d";
//写一段代码,将字符串buf转成一个整数。(整数的值是0x12AB3d ,即十进制的1223485)
//把一个字符转化为相应的整数
unsigned int hex_char_to_int(char ch)
{
if (ch >= '0' && ch<= '9')
{
return ch-'0';
}
if (ch >= 'A' && ch<='Z')
{
return ch-'A'+10;
}
if (ch >= 'a' && ch<='z')
{
return ch-'a'+10;
}
}
//输入字符串,输出相应的16进制;例如:输入"12AB3d",输出0x12AB3d
unsigned int summation(char* buf, int len)
{
int sum = 0;
int num = 0;
for (int i = 0; i < len; i++)
{
num = hex_char_to_int(buf[i]);
sum = sum * 16 + num; //16进制表达
}
return sum;
}
int main()
{
char buf[7]= "12AB3d";
summation(buf, 6);
return 0;
}