#include #include #include using namespace std; class Stringovi { private: string s1, s2, s3; public: void unos(); void top3najvise(); void top3najmanje(); void obrnuti(); void funkcija2(); Stringovi(string, string, string); }; Stringovi::Stringovi(string x, string y, string z) { s1 = x; s2 = y; s3 = z; } void Stringovi::unos() { cout << "Unesite prvi string: "; getline(cin, s1); cout << "Unesite drugi string: "; getline(cin, s2); cout << "Unesite treci string: "; getline(cin, s3); } void Stringovi::top3najvise() { string s = s1 + s2 + s3; cout << "3 najcesce pojavljivana znaka su: " << endl; int niz[256] = {0}; char znak; // za svaki znak prebrojavamo broj ponavljanja u nizu // (svaki znak je odredjen ascii kodom) for (int i = 0; i < s.length(); i++) { niz[(int)s[i]]++; } // u nizu trazimo maximalni broj ponavljanja, // ispoisujemo te ga postavljamo na 0 for (int i = 0; i < 3; i++) { int max = 0; for (int j = 0; j < 256; j++) { if (max < niz[j]) { max = niz[j]; znak = j; } } cout << "Znak " << znak << " " << niz[znak] << " puta" << endl; niz[znak] = 0; } } void Stringovi::top3najmanje() { string s = s1 + s2 + s3; cout << "3 najmanje pojavljivana znaka su: " << endl; int niz[256] = {0}; char znak; // za svaki znak prebrojavamo broj ponavljanja u nizu // (svaki znak je odredjen ascii kodom) for (int i = 0; i < s.length(); i++) { niz[(int)s[i]]++; } // u nizu trazimo minimalni broj ponavljanja, // ispoisujemo te ga postavljamo na 0 for (int i = 0; i < 3; i++) { int min = 1000; for (int j = 0; j < 256; j++) { if (niz[j] != 0) { if (niz[j] < min) { min = niz[j]; znak = j; } } } cout << "Znak " << znak << " " << niz[znak] << " puta" << endl; niz[znak] = 0; min = 1000; } } void Stringovi::obrnuti() { int izbor; cout << "Unesite string koji zelite ispisati obrnuto (unesite 1, 2 ili 3)" izbor; switch (izbor) { case 1: { int j = s1.length() - 1; string ss1 = s1; for (int i = 0; i < j; i++) { char temp = ss1[i]; ss1[i] = ss1[j]; ss1[j] = temp; j--; } cout << "\nNovi string: " << ss1 + s2 + s3 << endl; break; } case 2: { int j = s2.length() - 1; string ss2 = s2; for (int i = 0; i < j; i++) { char temp = ss2[i]; ss2[i] = ss2[j]; ss2[j] = temp; j--; } cout << "\nNovi string: " << s1 + ss2 + s3 << endl; break; } case 3: { int j = s3.length() - 1; string ss3 = s3; for (int i = 0; i < j; i++) { char temp = ss3[i]; ss3[i] = ss3[j]; ss3[j] = temp; j--; } cout << "\nNovi string: " << s1 + s2 + ss3 <> skok; for (int i = 0; i < s.length(); i++) { if (skok == i || brojac == i) { if (islower(s[i])) { s[i] = toupper(s[i]); } else if (isupper(s[i])) { s[i] = tolower(s[i]); } else if (isdigit(s[i])) { s[i] = '0'; } else { s[i] = '0'; } brojac = brojac + skok; } } cout << "Finalni string: " << s << endl; } int main() { int opcija; string x, y, z; Stringovi st(x, y, z); st.unos(); do { cout << "IZBORNIK" << endl; cout << "1. 3 najmanje i najvise pojavljivana znaka" << endl; cout << "2. spajanje u jedan string i ispis svakog narednog znaka pocev od " "prvog, sa tast unosimo skok" << endl; cout << "3. jedan string se ispisuje u obrnutom redoslijedu (korisnik bira " "koji)" << endl; cout << "4. izlaz" << endl; cout << "__________________________________________________________________" "__________" << endl; cout << "Unesite opciju" opcija; switch (opcija) { case 1: { st.top3najvise(); st.top3najmanje(); break; } case 2: { st.funkcija2(); break; } case 3: { st.obrnuti(); break; } case 4: { cout << "Odabrali ste opciju za izlaz" << endl; break; } default: { cout << "Opcije su od 1 do 3" << endl; } } } while (opcija != 4); system("Pause"); return 0; }