Вопрос задан 30.11.2023 в 12:32. Предмет Информатика. Спрашивает Крапивина Екатерина.

C++. 10 класс. Даны строки S1 и S2. Удалить из строки S1 последнюю подстроку S2, если S2 не

содержится в S1, вывести S1 без изменений.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Клем Стьопа.

#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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на языке C++ вам понадобится использовать методы работы со строками из стандартной библиотеки (std::string).

Первым шагом нужно проверить, содержится ли подстрока S2 в строке S1. Для этого можно воспользоваться функцией find() или rfind(). Разница между ними заключается в том, что функция find() ищет первое вхождение подстроки, а функция rfind() ищет последнее вхождение подстроки. В данном случае, чтобы удалить последнюю подстроку S2, нам нужно использовать rfind().

Вот пример кода, который решает данную задачу:

```cpp #include #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. Наконец, мы выводим результат на экран.

0 0

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

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

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

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