Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
1

Принять в качестве параметров две строки и вернуть копию первого параметра

10.07.2018, 13:26. Показов 1874. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу разобраться с заданием. Подскажите, пожалуйста, как можно его сделать.
Задача: На языке С++ написать программу, принимающую в качестве параметров две строки и возвращающую копию первого параметра, все вхождения второго параметра которой взяты в «()». Например, если, параметрами строки были: ertabcsdftyuabczevbh и abc, то надо вернуть ert(abc)sdftyu(abc)zevbh.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2018, 13:26
Ответы с готовыми решениями:

Искать файл, который задан в качестве первого параметра, в каталогах, заданных в качестве остальных параметров
Нужен командный файл, который будет искать файл, который задан в качестве первого параметра в...

Пакетный файл, который будет осуществлять поиск файла, заданного в качестве первого параметра в каталогах, заданных в качестве остальных параметров
Написать пакетный файл, который будет осуществлять поиск файла, заданного в качестве первого...

Упорядочить матрицу по элементам первого столбца и в качестве вектора принять главную диагональ
задали написать программу нахождения вектора с помощью матрицы и оформить это через модуль....

Как указать каталог в качестве первого параметра командного файла?
Прошу помочь с кодом bat-ка, задание таково: Разработать и выполнить командный файл (КФ),...

4
186 / 171 / 93
Регистрация: 13.06.2018
Сообщений: 708
10.07.2018, 13:42 2
откель принимающую, куды возвращающую ?
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
10.07.2018, 14:02 3
eganator, На Си это можно сделать как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char *prog(char *p1, char *p2)
{   char *p, *q;
   char *out = (char *) malloc(strlen(p1)*3);
   int k = 0;
   for(q = p = p1;  (p =ststr(p, p2))!=NULL; q = (p +=strlen(p2))) {
     int n = p - q;
     for(int i=0; i < n; i++)
       out[k++] = *(q+i);
     sprintf(out+k, "(%s)", p2);
     k += 2 + strlen(p2);
   }
   while(*q) out[k++] = *(q++);
   out[k= = '\';
   return out;
}
(Не проверял, писал на коленке, ошибки возможны)
Так как С++ включает в себя Си, заданию решение должно удовлетворять.
Но возможно, используя специфические плюсовые средства, это можно сделать и изячнее
Главное, чтобы вы поняли алгоритм.
Находишь очередное вхождение p2 в p1. Все, что до него, переписываем в out. Дописываем туда "(p2)". И продолжаем поиск с конца вхождения.

Добавлено через 4 минуты
Скорее всего, тут надо использовать тип string. Но поскольку у меня в голове некоторая каша из string, AnsiString, QString и их родственников, я нерискнул предложить соответствующее решение.
1
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
10.07.2018, 14:10  [ТС] 4
Байт, Спасибо! Буду разбираться, попробую сделать через string. Главное, как вы сказали, понять алгоритм)

Добавлено через 1 минуту
Biger18, Вот тоже особо понял задание. Буду думать, как можно улучшить
0
186 / 171 / 93
Регистрация: 13.06.2018
Сообщений: 708
10.07.2018, 14:28 5
C++
1
2
3
4
5
6
7
8
9
10
11
    string s1="ertabcsdftyuabczevbh";
    string s2="abc";
    string s="";
    int i;
    while((i=s1.find(s2))>=0)
    {
        s+=s1.substr(0,i)+"("+s2+")";
        s1=s1.substr(i+s2.length());
    }
    s+=s1;
    cout<<s<<endl;
2
10.07.2018, 14:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2018, 14:28
Помогаю со студенческими работами здесь

Процедура, принимающая в качестве параметров - две таблицы
Здравствуйте, прошел курс по T-SQL. Стоит задача создать хранимую процедуру, которая принимает, в...

Написать метод, который бы принимал в качестве первого параметра массив произвольного типа
Написать метод, который бы принимал в качестве первого параметра массив произвольного типа и...

Передача строки в качестве параметра функции
Здравствуйте , помогите ,пожалуйста , с некоторыми вопросами по VBA. Есть 2 строки , нужно...

Передать путь в качестве параметра командной строки
Что нужно исправить чтобы при запуске программы через командную строку с параметром, параметр...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru