0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 43
1

Заменить встроке S все вхождения строки S1 настроку S2

04.06.2010, 09:14. Показов 1691. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
переведите прогу пожалуйста с C++ на Pascal

сам текст задачи таков.Даны строки S,S1 и S2. Заменить встроке S все вхождения строки S1
настроку S2.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
using namespace std;
 
void replace(string& s, const string& s1, const string &s2)
{
    string::size_type npos,
        s1_len = s1.length(),
        s2_len = s2.length();
    npos = s.find(s1);
    while(npos != string::npos) {
        s.replace(npos, s1_len, s2);
        npos = s.find(s1, npos + s2_len);
    }
}
 
int main()
{   
    string s, s1, s2;
 
    cout << "Введите строку s, s1 и s2: ";
    getline(cin, s);
    getline(cin, s1);
    getline(cin, s2);
 
    replace(s, s1, s2);
    cout << "Результат: " << s << endl;
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2010, 09:14
Ответы с готовыми решениями:

Для заданной строки s заменить все вхождения строки substr1 на подстроку substr2
Разработать программу, которая для заданной строки s заменяет все вхождения от строки substr1 на...

Строки(заменить все вхождения в текст)
Из строки удалить среднюю букву, если длина строки нечетная, если четная - удалить две средние...

Заменить в строке S1 первое (последнее или все) вхождения строки S2 на S3
Задание: даны три строки: S1, S2, S3. Заменить в строке S1 первое (последнее или все) вхождения...

Заменить в строке S1 первое (последнее или все) вхождения строки S2 на S3
Задание: даны три строки: S1, S2, S3. Заменить в строке S1 первое (последнее или все) вхождения...

1
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
04.06.2010, 09:22 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Так с процедурой
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure Replace(var s: string; const s1,s2: string);
var
  tmp,s1_len,s2_len: byte;
begin
  s1_len := Length(s1);
  s2_len := Length(s2);
  if s1 <> s2 then
  begin
    tmp := Pos(s1, s);
    while tmp <> 0 do
    begin
      Insert(s2, s, tmp);
      Delete(s, tmp + s2_len, s1_len);
      tmp := Pos(s1, s);
    end;
  end;
end;
 
var
  s,s1,s2: string;
 
begin
  ReadLn(s);
  ReadLn(s1);
  ReadLn(s2);
  Replace(s, s1, s2);
  WriteLn(s);
  ReadLn;
end.
А так без
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  s,s1,s2: string;
  tmp,s1_len,s2_len: byte;
begin
  ReadLn(s);
  ReadLn(s1);
  ReadLn(s2);
  s1_len := Length(s1);
  s2_len := Length(s2);
  if s1 <> s2 then
  begin
    tmp := Pos(s1, s);
    while tmp <> 0 do
    begin
      Insert(s2, s, tmp);
      Delete(s, tmp + s2_len, s1_len);
      tmp := Pos(s1, s);
    end;
  end;
  WriteLn(s);
  ReadLn;
end.
Регистр не учитывался.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2010, 09:22
Помогаю со студенческими работами здесь

Строки. Заменить в строке S все вхождения строки S1 на строку S2
помогите, пожалуйста.. даны строки S, S1 и S2. заменить в строке S все вхождения строки S1 на...

Строки символов. Заменить в нем все вхождения буквосочетания БИТ на РОГ
Дано предложение. Заменить в нем все вхождения буквосочетания БИТ на РОГ.

Строки символов. Дано предложение.Заменить в нем все вхождения буквосочетания ах на ух
1)Дано предложение.Заменить в нем все вхождения буквосочетания ах на ух (задача по теме Строки...

Даны три строки S1,S2, S3 . Заменить в строке S1 все вхождения строки S2 на S3.
Даны три строки S1,S2, S3 . Заменить в строке S1 все вхождения строки S2 на S3.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru