Функция C++ для проверки того, является ли строка числом: объяснение нескольких методов

Вот функция C++, которая проверяет, является ли строка числом, используя несколько подходов:

Метод 1: использование стандартных библиотечных функций

#include <string>
#include <cctype>
bool isNumber(const std::string& str) {
    for (char c : str) {
        if (!std::isdigit(c)) {
            return false;
        }
    }
    return true;
}

Метод 2: использование регулярных выражений

#include <regex>
bool isNumber(const std::string& str) {
    std::regex numberRegex("[0-9]+");
    return std::regex_match(str, numberRegex);
}

Метод 3. Использование собственной логики

bool isNumber(const std::string& str) {
    for (char c : str) {
        if (c < '0' || c > '9') {
            return false;
        }
    }
    return true;
}

Метод 4: использование строкового потока

#include <sstream>
bool isNumber(const std::string& str) {
    std::istringstream iss(str);
    int number;
    return (iss >> number) && iss.eof();
}

Это всего лишь несколько примеров того, как можно проверить, является ли строка числом в C++. Выбор метода зависит от ваших конкретных требований и ожидаемого формата чисел.