Sunteți pe pagina 1din 6

#include <iostream>

#include <string.h>

using namespace std;

/**

Elaborati o functie pentru determinarea numarului de vocale dintr-un text dat ca parametru.

*/

bool vocala1 (char c)

if (c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || c=='A' || c=='E' || c=='I' || c=='O' || c=='U')

return true;

return false;

bool vocala (char c)

return c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || c=='A' || c=='E' || c=='I' || c=='O' || c=='U';

bool vocala3 (char c)

return strchr("aeiouAEIOU",c) !=0;

bool vocala4 (char c)

switch(c)

case 'a':

case 'e':
case 'i':

case 'o':

case 'u':

case 'A':

case 'E':

case 'I':

case 'O':

case 'U':

return 1;

///default: return 0;

return 0;

int nrVocale1 (char s[])

int nrV=0;

for (int i=0;i<strlen(s);i++)

if (vocala(s[i]))

nrV++;

return nrV;

int nrVocale (char s[])

int nrV=0;

for (int i=0;s[i];i++)

nrV+=vocala4(s[i]);

return nrV;
}

/**

Sa se elaboreze o functie care afiseaza cele mai frecvente 3 caractere din text.Se stie ca textul contine
cel putin 3 caractere distincte.

Daca pe pozitia 3 apar mai multe caractere cu aceeasi frecventa, sa se afiseze toate.

*/

void frec (char s[])

int f[255]={0};

for (int i=0;s[i]!=0;i++)

f[s[i]]++;

int max1=0,max2=0,max3=0;

char c1,c2,c3;

for (int i=0;i<255;i++)

if (f[i]>max1)

max3=max2;

max2=max1;

max1=f[i];

c3=c2;

c2=c1;

c1=i;

else

if (f[i]>max2)

max3=max2;

max2=f[i];

c3=c2;
c2=i;

else

if (f[i]>max3)

max3=f[i];

c3=i;

cout<<c1<< "->"<<max1<<endl;

cout<<c2<< "->"<<max2<<endl;

for (int i=0;i<255;i++)

if (f[i]==max3 && i!=c1 && i!=c2) cout<<(char) i<< "->"<<max3<<endl;

/**

Sa se elimine vocalele din text.

Ex: Ana are mere

Cu i parcurgem elementele sirului.

j - reprezinta pozitia din vector in care memoram elementul de pe pozitia i, daca acesta nu este
vocala.

j=0,

s[0]=n, j++

s[1]=' ',j++

s[2]=r, j++

s[3]=' ', j++

s[4]=m, j++

s[5]=r, j++
s[6]=0;

*/

void eliminareVocale1 (char s[])

int j=0;

for (int i=0;s[i]!=0;i++)

if (!vocala(s[i]))

s[j]=s[i];

j++;

s[j]=0;

/**

Urmatoarea functie utilizeaza functiile de biblioteca.

*/

void eliminareVocale2 (char s[])

for (int i=0;i<strlen(s);i++)

if (vocala (s[i]))

strcpy(s+i, s+i+1);

i--;

void eliminareVocale (char s[])

{
for (int i=strlen(s)-1;i>=0;i--)

if (vocala (s[i]))

strcpy(s+i, s+i+1);

int main()

char s[100];

cin.getline(s,99,'\n');

cout<<nrVocale(s)<<endl;

frec(s);

eliminareVocale(s);

cout<<s;

return 0;

S-ar putea să vă placă și