Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dmitry78
Сообщений: n/a
#1

Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2 - C++

30.05.2008, 17:27. Просмотров 1101. Ответов 1
Метки нет (Все метки)

Помогите решить задачку пож.
1. Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2
2. Удалить первые вхождения заданных символов С1, С2, С3, заполняя оброзовавшиеся "дыры" последующими символами
3. Добавить после каждого заданного символа С1 заданный символ С2

Заранее спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2008, 17:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2 (C++):

STL. Заменить в строке S все вхождения подстроки S1 на подстроку S2 - C++
Даны строки S, S1 и S2 вводимые с клавиатуры. Требуется заменить в строке S все вхождения подстроки S1 на подстроку S2. (Например,...

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++
Заменить в строке все вхождения подстроки strl на подстроку str2.

В строке заменить заданную подстроку - C++
string s1="int int int int"; string s2="int"; string s3="m"; int t=s1.size(); cout<<s1; cout<<endl; ...

Найти координаты первого вхождения в заданную строку подстроки, состоящей из двух одинаковых заданных символов - C++
Найти координаты первого вхождения в заданную строку подстроки, состоящей из двух одинаковых заданных символов. Помогииииите

1
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,494
09.06.2008, 16:57 #2
Ну что ж давайте попробуем. Решим для начала первое задание. Прежде всего напишем функцию dd. Её текст и описание ниже. Язык С

//Здесь разработана функция dd. Эта функция вот чем занимается: во-первых, она принимает три аргумента: строку символов, и два числа (n1, n2) типа int. Ничего не возвращает. Эта функция сдвигает часть строки, начинающуюся с символа N n влево или вправо на модуль n1. ЕСли n1> 0, то сдвиг происходит вправо, если меньше, то влево, если ноль- никуда не происходит. Необходимо вручню следить за тем, чтобы всё во всё влезало. Корректно то есть чтобы сдвиги происходили.
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
#include <string.h>
#include <stdio.h>
 
void dd (char s [], int n, int n1) {
 int dl= strlen (s)- 1;
 printf ("%d\n", dl+ n1+ 1); 
 
 //Ну, тут работаем если n1> 0
 if (n1> 0) {
  s [dl+ n1+ 1]= '\0';
  while (dl>= n) {
   s [dl+ n1]= s [dl--];
  }
 }
 
 //А тут, если меньше
 else{
  do {
   s [n+ n1]= s [n++];
  }
  while (n<= dl);
  s [n+ n1]= '\0';
 }
 
}




Теперь собственно решение, отдельной функцией выполнять не стал. Критикуйте, обсудим

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
#include <stdio.h>
int main (void) {
 char s [40]= "qwertyyyyyyyyuiopp";
 char s1 []= "yyyyyyyy";
 char s2 []= "xxx";
 char* d;
 int i= 0;
 
 //ЗДесь работаем, если вхождение существует
 if (d= strstr (s, s1)) {
 
  //Сейчас надо расширить или сузить строку s, чтобы в неё входила строка s2
  dd (s, d- s+ strlen (s1),strlen (s2)- strlen (s1));
 
  while (s2 [i]!= '\0') {
   *d= s2 [i++];
   d++;
  }  
 } 
 
 printf ("%s\n", s); 
 
 return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2008, 16:57
Привет! Вот еще темы с ответами:

Заменить в строке последнее вхождение данной подстроки на другую подстроку - C++
Даны строки s,s1 и s2. Заменить в строке S последнее вхождение строки S1 на строку S2 через char

Поиск последнего вхождения в строку заданной подстроки - C++
8.8.1. Помогите, пожалуйста, решить задачу в С++. Написать программу поиска последнего вхождения в строку заданной подстроки.

В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась - C++
Ребят, помогите разобраться. Стоит задача создать программу со строками, string.h желательно не использовать. В заданной строке удалить...

Заменить в строке все вхождения одной подстроки на другую - C++
помогите пожалуйста с решением задачи! замените в строке все вхождения одной подстроки на другую в с++.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru