有没有办法将INT和字符串存储在同一数组中?

我不确定解析的工作方式,也无法在C ++中实现。

我创建了一种算法,可以将小数转换为十六进制。该算法现在仍输出大于9的值,例如10而不是A。应该使用以下函数来解决该问题,但是当我运行该函数时,无法将正常的1-9值与As和Bs存储在同一数组中,这意味着我无法输出它们。我已经坚持了两天。

string hexValues(int remainder)
{
    string A = "A";
    string B = "B";
    string C = "C";
    string D = "D";
    string E = "E";
    string F = "F";

    if (remainder == 10)
    {
        return A;
    }
    else if (remainder == 11)
    {
        return B;
    }
    else if (remainder == 12)
    {
        return C;
    }
    else if (remainder == 13)
    {
        return D;
    }
    else if (remainder == 14)
    {
        return E;
    }
    else if (remainder == 15)
    {
        return F;
    }
}
 hexMod = userDecNumber4Hex % 16;
            if (hexMod > 9)
            {
                hexadecimalAnswer[y] = hexValues(hexMod);
            }
            else
            {
                hexadecimalAnswer[y] = hexMod;
            }


    while (userDecNumber4Hex != 0)
    {
        if (userDecNumber4Hex % 16 != 0)
        {
            hexMod = userDecNumber4Hex % 16;
            if (hexMod > 9)
            {
                hexadecimalAnswer[y] = hexValues(hexMod);
            }
            else
            {
                hexadecimalAnswer[y] = hexMod;
            }

            userDecNumber4Hex = (userDecNumber4Hex-hexMod)/ 16;
            y += 1;
        }
        else if (userDecNumber4Hex % 16 == 0)
        {
            userDecNumber4Hex = userDecNumber4Hex / 16; 
            if (userDecNumber4Hex > 9)
            {
                hexadecimalAnswer[y] = userDecNumber4Hex;
            }

        }

    }

代码很长,所以我不太确定要发布什么内容,但是有多个数组,但是它只是其中之一,我需要存储从hexValues函数获取的值,而它已经具有int值

matthewzxc 回答:有没有办法将INT和字符串存储在同一数组中?

由于十六进制数字中的整数仅在09之间变化,因此可以将它们存储为字符。同时,您也可以将A-F作为字符存储。 因此,请改为返回字符作为面值。

char hexValues (int remainder)
{
    if (remainder < 10)
        return '0' + remainder;
    else 
        return 'A' + (remainder - 10);
}

要进行完全转换,以下是使用递归的好借口:

string decToHex (int n)
{
     if (n < 16)
     {
         string s (1,decToHex (n));
         return s;
     }
     else 
         return decToHex (n / 16) + hexValues (n % 16);
}
本文链接:https://www.f2er.com/3085735.html

大家都在问