Язык программирования С++ 9 класс
Напишите программу, которая заменяет во всей строке одну последовательность
символов на другую.
Пример:
Введите строку:
(X > 0) and (Y < X) and (Z > Y) and (Z <> 5)
Что меняем: and
Чем заменить: &
Результат
(X > 0) & (Y < X) & (Z > Y) & (Z <> 5)
Answers & Comments
#include <iostream>
#include <string>
using namespace std;
signed main() {
setlocale(LC_ALL, "Rus");
string strInput, findText, replaceText;
size_t position = 0;
cout << "Введите текст:" << ends;
getline(cin, strInput);
cout << "Введите то, что надо заменить: ";
getline(cin, findText);
cout << "Введите на что меняем: ";
getline(cin, replaceText);
string strOut = strInput;
while ((position = strOut.find(findText, 0)) != string::npos)
{
strOut.replace(position, findText.size(), replaceText);
position++;
}
cout << "Изменённый текст: " << strOut << endl;
cin.get();
return 0;
}
Либо:
#include <regex>
#include <string>
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "Rus");
string strInput, findText, replaceText;
cout << "Введите текст: ";
getline(cin, strInput);
cout << "Введите то, что надо заменить: ";
getline(cin, findText);
cout << "Введите на что меняем: ";
getline(cin, replaceText);
strInput = regex_replace(strInput, regex(findText), replaceText);
cout << "Изменённая строка: " << strInput;
return 0;
}