要求:输入一个字符串,里面包含 ,可能为10进制或者8进制或者16进制的数字
然后将字符串里面各个进制的数转化为十进制数字输出
c程序实现如下:
#include<stdio.h>
#include<assert.h>
#include<ctype.h>
static int to_Hex(const char* str)
{
//0123456789abcdefABCDEF
int sum = 0;
while (isxdigit(*str))
{
if (isdigit(*str))
{
sum = sum * 16 + *str - '0';
}
else
{
tolower(*str);
sum = sum * 16 + *str - 'a' + 10;
}
str++;
}
return sum;
}
static int to_Oct(const char* str)
{
//01234567
int sum = 0;
while (isdigit(*str) && *str != '8' && *str != '9')
{
sum = sum * 8 + *str - '0';
str++;
}
return sum;
}
static int to_Dec(const char* str)
{
//0123456789
int sum = 0;
while (isdigit(*str))
{
sum = sum * 10 + *str - '0';
str++;
}
return sum;
}
int My_atoi(const char* str)
{
as