Вот пример функции C++, которая принимает входную строку, удаляет из нее указанную подстроку и сохраняет удаленную подстроку:
#include <iostream>
#include <string>
std::string deleteAndSaveSubstring(std::string& input, const std::string& substring) {
std::string deletedSubstring;
size_t pos = input.find(substring);
if (pos != std::string::npos) {
deletedSubstring = input.substr(pos, substring.length());
input.erase(pos, substring.length());
}
return deletedSubstring;
}
int main() {
std::string inputString = "Hello, World! This is a test.";
std::string substringToDelete = "World";
std::string deletedSubstring = deleteAndSaveSubstring(inputString, substringToDelete);
std::cout << "Deleted Substring: " << deletedSubstring << std::endl;
std::cout << "Modified String: " << inputString << std::endl;
return 0;
}
Эта функция deleteAndSaveSubstringпринимает два параметра: строку input(исходную строку) и строку substring(подстроку, которую нужно удалить).. Он ищет подстроку во входной строке, используя функцию find. Если подстрока найдена, она сохраняет удаленную подстроку в переменной deletedSubstringс помощью функции substrи удаляет подстроку из входной строки с помощью eraseфункция.
В приведенном примере входная строка — «Привет, мир! Это тест». и удаляемая подстрока — «Мир». Функция удалит подстроку и сохранит ее в переменной deletedSubstring. Результат будет:
Deleted Substring: World
Modified String: Hello, ! This is a test.
Это лишь одна из возможных реализаций. Существуют и другие методы достижения того же результата, например использование функции replaceили использование функций манипуляции со строками, таких как strcpyи strcat.