Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <conio.h>
- #include <string>
- #include <algorithm>
- using namespace std;
- const char vMagan[] { 'a', 'e', 'i', 'u', 'o', 'A', 'E', 'I', 'U', 'O' };
- const char* last = vMagan + sizeof(vMagan) / sizeof(char);
- struct szo
- {
- string s;
- //char s[21]; //az állományból beolvasott szó
- int hossz; //a szó karaktereinek száma
- int mgh; //a szóban lévő magánhangzók száma
- };
- class szavak
- {
- private:
- szo *p;
- int n;
- int db; //sorok száma
- public:
- szavak();
- int Sorhossz(string szo1);
- void Tisztit();
- void HosszMeghatarozas() { for (int i = 0; i < n; i++) p[i].hossz = p[i].s.length(); };
- void MghMeghataroz();
- void Kiir();
- int Getn() { return n * 3; };
- string Leghosszabb();
- };
- int szavak::Sorhossz(string szo1)
- {
- int hossz = szo1.length();
- return hossz;
- }
- szavak::szavak()
- {
- ifstream be("davy.txt");
- db = 0;
- n = 0;
- if (!be)
- {
- cerr << "Nincs ilyen fájl!" << endl;
- _getch();
- exit(-1);
- }
- int hossz2;
- string szo2;
- while (!be.eof())
- {
- getline(be, szo2);
- if (!be.eof())
- {
- hossz2 = Sorhossz(szo2);
- for (int j = 0; j < hossz2; j++)
- if (szo2[j] == ' ') n++;
- if (!be.eof()) db++;
- }
- }
- p = new szo[n];
- be.clear();
- be.seekg(0, ios::beg);
- n--;
- for (int i = 0; i < n; i++)
- {
- be >> p[i].s;
- }
- }
- void szavak::Tisztit()
- {
- int hossz2 = 0;
- for (int i = 0; i < n; i++)
- {
- hossz2 = p[i].s.length();
- for (int j = 0; j < hossz2; i++)
- if (p[i].s[j] == '.' || p[i].s[j] == ',' || p[i].s[j] == '?'
- || p[i].s[j] == '"' || p[i].s[j] == ';') p[i].s.erase(j);
- }
- for (int i = 0; i < n; i++) cout << p[i].s << " ";
- }
- void szavak::MghMeghataroz()
- {
- for (int i = 0; i < n; i++)
- {
- p[i].mgh = 0;
- for_each(p[i].s.cbegin(), p[i].s.cend(), [&](char ch)
- {
- if (find(vMagan, last, ch) != last) ++p[i].mgh;
- });
- }
- }
- string szavak::Leghosszabb()
- {
- int max = 0;
- for (int i = 0; i < n; i++)
- {
- if (p[i].hossz > p[max].hossz) max = i;
- }
- return p[max].s;
- }
- void szavak::Kiir()
- {
- for (int i = 0; i < n; i++)
- {
- cout << p[i].s << " ";
- }
- }
- int main()
- {
- setlocale(LC_ALL, "HUN");
- szavak a;
- a.Tisztit();
- cout << endl;
- a.MghMeghataroz();
- a.HosszMeghatarozas();
- cout << endl;
- cout << "Adatok száma: " << a.Getn() << endl;
- cout << "A leghosszabb szó: " << a.Leghosszabb() << endl;
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement