Аватар для vipusknik
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54

Заменить все вхождения строки s2 в строку s1 на строку s3

17.10.2012, 20:02. Показов 7879. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано три строки s1, s2, s3. Заменить в строке s1 все вхождения s2 на s3.

Помогите. Не знаю как сделать.
Вообще мыслей никаких(((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2012, 20:02
Ответы с готовыми решениями:

Заменить в строке все вхождения строки S1 на строку S2
Программа должна иметь текстовое меню, состоящие из подпрограмм. Каждая задачу реализовать двумя способами: - с использованием...

Даны строки s, s1 и s2. Заменить в строке s все вхождения строки s1 на строку s2
Даны строки s, s1 и s2. Заменить в строке s все вхождения строки s1 на строку s2. Пример: вводим строку s: aaaaaa(6) подстрока s1:...

Даны строки s, s1 и s2. Заменить в строке s все вхождения строки s1 на строку s2
Даны строки s, s1 и s2. Заменить в строке s все вхождения строки s1 на строку s2. Пример: вводим строку s: aaaaaa(6) подстрока s1:...

23
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.10.2012, 23:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от David Sylva Посмотреть сообщение
go покажи как, до меня никак не доходит.
ну я предложил ответ на вопрос
Цитата Сообщение от vipusknik Посмотреть сообщение
например, s3 < s2.
В идеале может быть и больше. Поэтому так.
Я бы сделал так функцию insert
Проверяйте, может ошибся, время то уже позднее
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char* insert(char *src, char *s, char *dst)
{
   char *t = strdup(src + strlen(s));
   strcpy(src, dst);
   strcat(src, t);
   free(t);
   return src;
}
 
int main(void)
{
   char s[BUFSIZ] = "__Hello world";
   char *s1 = "Hi";
   char *s2 = "Hello";
   char *ptr = strchr(s, 'H');
 
   printf("%s\n", insert(ptr, s2, s1));
   printf("%s\n", insert(ptr, s1, s2));
   printf("%s\n", insert(ptr, s2, s2));
   printf("%s\n", s);
 
   return 0;
}
http://ideone.com/Ck8SO

Добавлено через 37 секунд
Bash
1
2
3
4
Hi world
Hello world
Hello world
__Hello world
1
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.10.2012, 09:08
go отличный вариант, но по моему он не работает если несколько вхождений слова.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
18.10.2012, 10:51
Цитата Сообщение от David Sylva Посмотреть сообщение
но по моему он не работает если несколько вхождений слова.
В смысле?
Вот протестил

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
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char* insert(char *src, char *s, char *dst)
{
   char *t = strdup(src + strlen(s));
   strcpy(src, dst);
   strcat(src, t);
   free(t);
   return src;
}
 
int main(void)
{
   char s[BUFSIZ] = "Hello, world, Hello";
   char *s1 = "Hi";
   char *s2 = "Hello";
 
   printf("%s\n", s);
 
   for (char *ptr = strstr(s, s2); ptr; ptr = strstr(ptr + 1, s2))
      insert(ptr, s2, s1);
 
   printf("%s\n", s);
 
   for (char *ptr = strstr(s, s1); ptr; ptr = strstr(ptr + 1, s1))
      insert(ptr, s1, s2);
 
   printf("%s\n", s);
 
   for (char *ptr = strstr(s, s2); ptr; ptr = strstr(ptr + 1, s2))
      insert(ptr, s2, s2);
 
   printf("%s\n", s);
 
   return 0;
}
http://ideone.com/sqrul
1
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.10.2012, 11:20
Да всё норм работает.

Не по теме:

Жаль автору темы твоя программа не пригодится

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2012, 11:20

Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из исходной строки
Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из исходной строки.

Преобразовать строку: все вхождения abc заменить на def
написать программу Дана строка из 80 символов, известно что в начале строки s находится не более 40 латинских букв, за которыми следуют...

Заменить в строке все вхождения abc на def и напечатать полученную строку
Здравствуйте. В программировании мозги не много соображают, что как работает понять могу, но вот написать самому редко получается. ...

Найти в исходной строке все вхождения заданной подстроки и заменить их на другую строку
Найти в исходной строке все вхождения (но не более девяти) заданной подстроки и заменить их на другую строку с указанием номера очередного...

Ввести строку и слово, удалить все вхождения слова и вывести строку
помогите с лабой! Добавлено через 22 секунды через &lt;stdio.h&gt;


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

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

Новые блоги и статьи
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru