Otchyot_OOPro_Laba_4
.docxЛабораторная работа №3
По дисциплине «Объектно-ориентированное программирование»
Ст.группы ИНФ-10-1 Михайловой Александры
Создать программу, которая вводит c клавиатуры массив строк, находит в нем все повторяющиеся последовательности (a a, b b b и т.д.) и заменяет каждую из них на два элемента: повторяющийся символ и длину последовательности. Выдает на экран результирующий массив и список пар "длина последовательности" - "число последовательностей с заданной длиной".
Код программы:
#include <iostream>
#include <string>
#include<vector>
using namespace std;
void main()
{
int size=3,index=-1,count=0,x=0;
char c[10];
string temp,substring;
vector<string> vs(size);
cout<<"Input "<<size<<" strings:"<<endl;
for(int i=0;i<size;++i)
{
getline(cin,temp,'\n');
vs[i]=temp;
}
for(int i=0;i<vs.size();++i)
{
for(int j=0;j<vs[i].length();++j)
{
index=j;
x=j;
count=0;
substring=vs[i][j];
++count;
while(x+1<vs[i].length())
{
if(vs[i][x] == vs[i][x+1])
{
++count;
++x;
}
else
break;
}
if(count>1)
{
itoa(count,c,10);
substring+=c;
vs[i].replace(index,count,substring);
count=0;
++j;
}
}
}
for(int i=0;i<size;++i)
{
cout<<vs[i]<<endl;
}
}