Проверка на наличие к системам исчесления и перевод

ЗАДАЧА В заданный текст входят только цифры и буквы. Определить, есть ли текст десятичной, шестнадцатеричному или двоичным записью целого или вещественного числа (указать при выводе какого). Я решил как определить принадлежность к системе, но как перевести любое в деситичную. И можно ли как-то покрасивей код сделать. какие-нибудь best practise'ы ))

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

int main()
{
    setlocale(LC_CTYPE, "rus");
    
    bool is_binary = true, is_decimal = true, is_hexadecimal = true;
    char str[255];

    cout << "Введите строкy: " << endl;
    cin.getline(str, 255);

    cout << "Введённая строка = : " << str << endl;

    for (int i = 0; i < strlen(str); i++)
    {
        if (str[i] == '.')
            continue;

        if (str[i] - '0' > 1)
        {
            is_binary = false;
            if (str[i] - '0' > 9)
            {
                is_decimal = false;
                if (str[i] - '@' > 6)
                {
                    is_hexadecimal = false;
                }
            }
        }
    }

    if (is_binary)
        cout << "is binary" << endl;
    else if (is_decimal)
        cout << "is decimal" << endl;
    else if (is_hexadecimal)
        cout << "is hexadecimal" << endl;
    else
        cout << "Это и не двоичная, и не десятичная, и не шестнадцатиричная система!" << endl;
    
}

Ответы (0 шт):