X进制转化为10进制

#include <iostream>
#include<string>
using namespace std;

//X进制数会有字母表示,例如16进制
string str;
int charToInt( char x)
{
    if (x >= '0' && x <= '9')
    {
        return x-'0';
    }
    else
    {
        return x - 'A' + 10;
    }
}
//X进制
void reserve(string s,int x)
{
    int num = 0;
    for (int i = 0; i < s.size(); i++)
    {
        num *= x;
        num += charToInt(s[i]);
    }
    cout << num;
}

int main()
{
    cin >> str;
    reserve(str, 16);
}