Найдите последнее число в строке C++

Чтобы найти последнее число в строке C++, вы можете использовать различные методы. Вот несколько подходов:

  1. Использование цикла. Вы можете перебирать строку с конца и проверять каждый символ, чтобы определить, является ли он числом. Найдя последнее число, вы можете извлечь его.

    std::string str = "abc123def456";
    std::string lastNumber;
    for (int i = str.length() - 1; i >= 0; i--) {
    if (isdigit(str[i])) {
        lastNumber = str.substr(i);
        break;
    }
    }
    // lastNumber will contain the last number in the string: "456"
  2. Использование регулярных выражений. Регулярные выражения можно использовать для поиска последнего числа в строке.

    #include <regex>
    std::string str = "abc123def456";
    std::smatch matches;
    std::regex pattern("\\d+$");
    if (std::regex_search(str, matches, pattern)) {
    std::string lastNumber = matches[0];
    // lastNumber will contain the last number in the string: "456"
    }
  3. Использование std::string::find_last_of: Этот метод ищет последнее вхождение любого символа из заданного набора в строке. Вы можете использовать его для поиска последней цифры.

    std::string str = "abc123def456";
    std::string digits = "0123456789";
    size_t found = str.find_last_of(digits);
    if (found != std::string::npos) {
    std::string lastNumber = str.substr(found);
    // lastNumber will contain the last number in the string: "456"
    }