BigInteger check in C++ from a string
You do need to include &lt;string&gt;.  Your platform seems to bring it in as a side-effect of other includes, but you can't portably rely on that.

If there's no need to modify the contents of the string, prefer to pass by reference, to reduce copying:

bool string_contains_integer(const std::string&amp; str)
//                           ^^^^^            ^


Instead of looping with indexes, learn to use iterators.  If you really must use indexes, use the correct type (std::string::size_type, not unsigned long long).

We don't need to write our own loop by hand, as there's a standard algorithm that will do that for us; we just need to supply the correct predicate function:

#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

bool string_contains_integer(const std::string&amp; str)
/*
    This function iterates through an array of chars,
    and checks each character to be a digit;
    optionally including a starting "+/-" sign.

    Returns true if the string contains a number (string of digits);
    Returns false if the string contains any other character(s).

    Starting "+/-" gets ignored, as we accept all integer numbers.
*/
{
    auto from = str.begin();
    auto to = str.end();

    if (from == to) {
        return false;
    }

    if (*from == '+' || *from == '-') {
        ++from;
    }

    return from != to
        &amp;&amp; std::all_of(from, to,
                       [](unsigned char c){ return std::isdigit(c); });
}