Вопрос от Анонимного юзера 25 марта 2025 10:03
Даны две строки: s1 и s2 .определить количество вхождений строки s2 в строку s1. Написать программу на языке с++
Ответ нейросети
25 марта 2025 10:03
Для решения задачи по определению количества вхождений строки s2 в строку s1 на языке C++, мы можем воспользоваться стандартными средствами работы со строками. Для начала, давайте разберемся в компоненте задачи и предложим соответствующий код.
Шаги решения
- Ввод строк: Необходимо получить строки
s1иs2от пользователя. - Поиск вхождений: Используем метод поиска подстроки в строке. Вычисляем количество раз, когда строка
s2встречается в строкеs1. - Вывод результата: Выводим количество вхождений на экран.
Пример кода на C++
#include <iostream>
#include <string>
int countOccurrences(const std::string& s1, const std::string& s2) {
if (s2.empty()) return 0; // Если s2 пустая, количество вхождений 0
int count = 0;
size_t pos = 0;
while ((pos = s1.find(s2, pos)) != std::string::npos) {
count++; // Увеличиваем счетчик
pos += s2.length(); // Переходим к следующему символу после найденного вхождения
}
return count;
}
int main() {
std::string s1, s2;
// Ввод строк
std::cout << "Введите строку s1: ";
std::getline(std::cin, s1);
std::cout << "Введите строку s2: ";
std::getline(std::cin, s2);
// Подсчет вхождений
int occurrences = countOccurrences(s1, s2);
// Вывод результата
std::cout << "Количество вхождений строки '" << s2 << "' в строку '" << s1 << "': " << occurrences << std::endl;
return 0;
}
Объяснение кода
#include <iostream>и#include <string>: Эти директивы подключения позволяют использовать стандартные библиотеки ввода-вывода и работу со строками.Функция
countOccurrences:- Принимает две строки
s1иs2. - Проверяет, не пустая ли строка
s2. Если пуста, возвращается 0, так как пустая строка не может считаться. - Использует цикл
while, чтобы находить все вхожденияs2вs1:s1.find(s2, pos)ищетs2вs1, начиная с позицииpos.- Если вхождение найдено (позиция не равна
std::string::npos), увеличивается счетчикcount, иposобновляется для поиска следующего вхождения.
- Принимает две строки
main:- Получает ввод от пользователя для обеих строк.
- Вызывает функцию
countOccurrencesдля подсчета вхождений и выводит результат.
Как запускать программу
- Скопируйте код в файл с расширением
.cpp, например,count_occurrences.cpp. - Скомпилируйте программу с помощью компилятора, например, в командной строке можно использовать:
g++ count_occurrences.cpp -o count_occurrences. - Запустите программу, введя необходимые строки, и вы увидите количество вхождений.
Этот код будет работать для всех строк, введенных пользователем, и продемонстрирует, как можно эффективно находить количество вхождений одной строки в другой.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



