Файл: Отчёт По лабораторной работе 3 11.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.02.2024

Просмотров: 6

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего образования «Уральский федеральный университет имени первого Президента России Б.Н. Ельцина» (УрФУ)

Институт радиоэлектроники и информационных технологий





Отчёт

По лабораторной работе №3

11 Вариант

Выполнял: Ведунов А.И._______________

Проверил: ___________________________

Группа:РИ-111121_____________________

Екатеринбург

2022

Задание

Написать программу, удаляющую заданную подстроку из строки. Строка и подстрока вводятся в «диалоговом» режиме.

Постановка задачи

Исходными данными для этой задачи будут значения элементов массивов. Массив символов строки и массив символов подстроки. Так же стоит и то, что программа будет работать корректней с английской кириллицей.

Метод решения

Нужно провести удаление элементов массива подстроки из массива строки.


i=0

l=0

Начало
Схема алгоритма


1






нет

2

m=0

pr=0

i=0

k=0

1



да



нет





да



нет

k>0

2




st[p]=str[0]

да

нет

да

pr=0



m=0

k=k-1

pr=0















нет

st[p+y]=str[y]



pr=pr+1

да



4

5

3



5

4

3





нет

pr=k




Такой подстроки в строке нет

нет

st

ca>0

да

результат:

ca=ca+1

st[p+m]=st[p+n] str[m]=str[n]

m++

да



конец

Код программы

#include

#include

#include

using namespace std;
int main()

{

setlocale(LC_ALL,"RUS");

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

printf("Лабораторная работа - 3, Ведунов А.И., РИ-111121\n");

printf("Удалить подстроку из строки\n");

char str[256];

char st [256];

printf("Введите строку:\n");

gets(st);

printf("Введите подстроку:\n");

gets(str);

int i=0,l=0,k,m,ca,pr,w;
//Количество симвалов в строке
while (st[i]!=0)

{

l++;

i++;

}

i=0;

k=0;

//Количество симвалов в подстроке
while (str[i]!=0)

{

k++;

i++;

}

m=0;

pr=0;

while (k>0)

{

for (int p=0;p
{

{

pr=0;

if (st[p]==str[0])

for (int y=0;y
if (st[p+y]==str[0+y]) pr=pr+1;

else;

if (pr==k)

{
for (int n=1;n
{

st[p+m]=st[p+n];

str[0+m]=str[0+n];

m++;
}
ca++;

}

}

}

m=0;

k--;

pr=0;

}

printf("Результат:\n");

if (ca>0) puts(st);

else cout << "Такой подстроки в строке нет" << endl;

return 0;

}

Проверка

Строка

Подстрока

Результат

Параметр

арам

петр

Классный вечер

вечер

классный

I’m so sorry

so

I’m sorry