C++. 10 класс. Даны строки S1 и S2. Удалить из строки S1 последнюю подстроку S2, если S2 не
содержится в S1, вывести S1 без изменений.Ответы на вопрос
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1, s2;
cin >> s1 >> s2;
int p = s1.rfind(s2);
if (p != string::npos)
s1.erase(p, s2.size());
cout << s1;
}
Для решения этой задачи на языке C++ вам понадобится использовать методы работы со строками из стандартной библиотеки (std::string).
Первым шагом нужно проверить, содержится ли подстрока S2 в строке S1. Для этого можно воспользоваться функцией find() или rfind(). Разница между ними заключается в том, что функция find() ищет первое вхождение подстроки, а функция rfind() ищет последнее вхождение подстроки. В данном случае, чтобы удалить последнюю подстроку S2, нам нужно использовать rfind().
Вот пример кода, который решает данную задачу:
```cpp
#include
int main() { std::string S1, S2; std::cout << "Введите строку S1: "; std::getline(std::cin, S1); std::cout << "Введите подстроку S2: "; std::getline(std::cin, S2);
size_t found = S1.rfind(S2); // Ищем последнее вхождение подстроки S2 в строке S1
if (found != std::string::npos) { // Если подстрока S2 найдена, удаляем ее S1.erase(found, S2.length()); }
std::cout << "Результат: " << S1 << std::endl;
return 0; } ```
В этом коде мы сначала объявляем две переменные типа std::string - S1 и S2. Затем мы считываем значения этих переменных с помощью функции std::getline(). Затем мы используем функцию rfind() для поиска последнего вхождения подстроки S2 в строке S1. Если подстрока S2 найдена, мы используем функцию erase() для удаления найденной подстроки из строки S1. Наконец, мы выводим результат на экран.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
