Вопрос задан 05.08.2023 в 10:59. Предмет Информатика. Спрашивает Сакевич Дима.

Написать программу для подсчёта количества вхождений подстроки в строку. (Язык С++)

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сорокин Тимур.
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str, substr;
    cout << "String = "; getline(cin, str);
    cout << "Substring = "; cin >> substr;
    int cnt = 0;
    for(int i = 0; i < str.length(); ++i)
        if(str[i] == substr[0])
            if(str.substr(i, substr.length()) == substr)
            {
                ++cnt;
                i += substr.length() - 1;
            }
    cout << cnt;
    return 0;
}

/****************************************************/
Пример:
String = test testHelloWorld testtest1243test
Substring = test
5
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для написания программы на C++ для подсчета количества вхождений подстроки в строку, вы можете использовать следующий код:

cpp
#include <iostream> #include <string> int countSubstringOccurrences(const std::string& str, const std::string& substr) { if (substr.empty()) { return 0; } int count = 0; size_t pos = 0; while ((pos = str.find(substr, pos)) != std::string::npos) { count++; pos += substr.length(); } return count; } int main() { std::string inputString, inputSubstring; std::cout << "Введите строку: "; std::getline(std::cin, inputString); std::cout << "Введите подстроку: "; std::getline(std::cin, inputSubstring); int occurrences = countSubstringOccurrences(inputString, inputSubstring); std::cout << "Количество вхождений подстроки: " << occurrences << std::endl; return 0; }

Эта программа предоставляет функцию countSubstringOccurrences, которая подсчитывает количество вхождений подстроки substr в строку str. Затем в main() вы просите пользователя ввести строку и подстроку, вызываете функцию countSubstringOccurrences и выводите результат на экран.

Обратите внимание, что функция find используется для поиска подстроки в строке. Она возвращает позицию первого вхождения подстроки в строке или std::string::npos, если подстрока не найдена. Мы продолжаем поиск следующего вхождения, начиная с позиции следующей за найденным индексом, и так до тех пор, пока не будет найдено последнее вхождение или пока не будет достигнут конец строки.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос