Pagini recente » Cod sursa (job #1262844) | Cod sursa (job #2974364) | Cod sursa (job #1134378) | Cod sursa (job #689626) | Cod sursa (job #2790406)
#include <bits/stdc++.h>
using namespace std;
class String {
int lungime_cuvant;
char *sir;
public:
String() { // Concstructor fara parametru
lungime_cuvant = 0;
sir = NULL;
}
String(const char *cuv, int lun) { //Constructor cu parametrii
lungime_cuvant = lun;
sir = new char[lungime_cuvant + 1];
strcpy(sir, cuv);
}
String(const String &str) // Constructor de copiere
{
lungime_cuvant = str.lungime_cuvant;
sir = new char[str.lungime_cuvant + 1];
strcpy(sir, str.sir);
}
~String() { //Destructor
delete[] sir;
}
char *returneaza_litere_mari(); //Prima cerinta
char cel_mai_frecvent_caracter(); //A 2-a cerinta
void concatenare(char const *sir2); //A 3-a cerinta
static void is_substring(char sir1[], char sir2[]) {
int ok = 0;
if (strstr(sir1, sir2) != NULL || strstr(sir2, sir1) != NULL)
ok = 1;
if (ok == 1) cout << "un sir il contine integral pe celalalt \n";
else cout << "niciun sir nu contine pe celalalt integral\n";
}
};
char *String::returneaza_litere_mari() {
for (int i = 0; i < lungime_cuvant; ++i)
if (sir[i] <= 'z' && sir[i] >= 'a')
sir[i] -= int('a' - 'A');
return sir;
}
char String::cel_mai_frecvent_caracter() {
int frecv[256];
for (int i = 0; i <= 256; ++i)
frecv[i] = 0;
int max = 0;
char solutie;
for (int i = 0; i < lungime_cuvant; ++i) {
frecv[sir[i]]++;
if (frecv[sir[i]] > max) {
max = frecv[sir[i]];
solutie = sir[i];
}
}
return solutie;
}
void String::concatenare(const char *sir2) {
strcat(this->sir, sir2);
cout <<"Sirul dupa concatenare este:"<< this->sir << endl<<endl;
}
int main() {
char t[256],v[256],w[256];
int lun;
cout<<"introduceti lungimea sirului: "; cin>>lun;
cout<<"introduceti sirul: ";cin>>t;
String s(t,lun);
char opt;
do {
cout<<endl<<endl<<" MENIU "<<endl;
cout<<" 1 - Returnarea sirului cu litere mari:"<<endl;
cout<<" 2 - Cel mai frecvent caracter din sir este:"<<endl;
cout<<" 3 - Concatenarea:"<<endl;
cout<<" 4 - Verificare functie is_substring"<<endl;
cout<<" x - Iesire"<<endl;
cout<<" Introduceti optiunea:"; cin>>opt;
switch(opt)
{
case '1':cout<<"--------> Rezultatul este="<<s.returneaza_litere_mari()<<endl<<endl;
break;
case '2':cout<<"--------> Rezultatul este="<<s.cel_mai_frecvent_caracter()<<endl<<endl;
break;
case '3': {cout<<"Introduceti sirul ce se doreste a fi concatenat:";
cin>>v;
s.concatenare(v);
}
break;
case '4':
{ cout<<"Introduceti sirurile ce doresc a fi verificate:";
cout<<endl;
cout<<"Primul sir:";cin>>v;
cout<<endl;
cout<<"Al 2-lea sir:";cin>>w;
cout<<endl;
s.is_substring(v,w);
cout<<endl<<endl;}
break;
case 'x':exit(1);
default: cout<<"\n Optiune incorecta ! ! ! ! \n ";
}
}
while(opt!='x');
return 0;
}