#include <iostream>
#include <string>
#include <fstream>
using namespace std;
//генерирует подстроку из заданых символов с заданным повторением
string subStrGen(char* ch,int k)
{
string res="";
for(int i=0;i<k;i++)
res+=*ch;
return res;
}
//считает, сколько раз подстрока входит в строку
int repNumb(string* str, string* subs)
{
int k=0;
size_t pos=0;
size_t lenS=str->length();
size_t lenSb=subs->length();
while(pos!=string::npos)
{ pos = str->find(*subs);
if(pos!=string::npos)
{ k++;
*str = str->substr(pos+lenSb,lenS-pos-lenSb);
}
}
return k--;
}
//записывает результаты в файл
void filing(string* str, string* subs,int r)
{
ofstream fout;
fout.open("results.txt");
if (fout.is_open())
{ fout <<"Original string:\n";
fout<<*str<<endl;
fout<<"Substring specified:\n";
fout <<*subs<<endl;
fout<<r<<" substrings found\n";
fout.close();
cout<<"File created\n";
}
else cout << "Unable to open file";
}
int main()
{
string start, sub, replica;
char spec;
int n,rep;
cout<<"Input your string\n";
getline(cin,start,'\n');
cout<<"Specify the character\n";
cin>>spec;
cout<<"How many times to repeat it?\n";
cin>>n;
replica=start;
sub=subStrGen(&spec,n);
rep=repNumb(&start,&sub);
cout<<rep<<" substrings found\n";
cout<<"Filing the results...\n";
filing(&replica,&sub,rep);
system("pause");
return 0;
}
|