我要从数字中提取数字,如何将它们存储在数组中?

int main()
{
    int n;
    std::cin>>n;
    while (n > 0)
        {
            int digit = n%10;
            n /= 10;
            std::cout<<digit<<" ";
        }

    return 0;
}

最佳答案

最好的方法是使用向量,因为它们可以在运行时轻松调整大小,例如:

int main()
{
    int n;
    std::cin>>n;
    std::vector<int> digitArray;
    while (n > 0)
    {
        int digit = n%10;
        n /= 10;
        std::cout<<digit<<" ";
        digitArray.push_back(digit);
    }
    std::reverse(digitArray.begin(), digitArray.end()); // reverse the order of digits

    return 0;
}


可以像访问C样式数组一样访问向量:digitArray[0] =第一个数字。

另一种方法可能是使用固定大小的数组,因为我们知道一个32位整数最多只能有10位数字,例如:

int main()
{
    int n;
    std::cin>>n;
    int digitArray[10] = {0}; //initialize all elements to 0
    int size = 0;
    while (n > 0)
    {
        int digit = n%10;
        n /= 10;
        std::cout<<digit<<" ";
        digitArray[size] = digit;
        ++size;
    }
    std::reverse(std::begin(digitArray), std::begin(digitArray)+(size-1)); // reverse the order of digits

    return 0;
}


大多数情况下,这将使您剩下无用的元素,尽管在这里可能并不重要。

关于c++ - 将数字存储在数组中,C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41210408/

10-17 01:41