fbpx

Problema #1868 – prosirx – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se consideră un text format din cel mult 200 de caractere litere mici și spații. Cuvintele din text sunt separate prin unul sau mai multe spații. Scrieti un program care citește textul și care:

Exemplu

prosirx.in

oana   este    la scoala 

prosirx.out

7 
Xana   Xste    Xa Xcoala 
este la oana scoala 

Explicație

Sunt 7 consoane în textul citit.

#include <bits/stdc++.h>


using namespace std;

ifstream cin("prosirx.in");
ofstream cout("prosirx.out");

char a[200][200];

int main()
{
    char s[300];
    cin.getline(s , 300);
    int i = 0;
    int cnt = 0;
    while(s[i]!='\0')
    {
        if(s[i]!='a' && s[i]!='A' && s[i]!='e' && s[i]!='E' && s[i]!='i' && s[i]!='I' && s[i]!='o' && s[i]!='O' && s[i]!='u' && s[i]!='U' && s[i]!=' ')
            cnt++;
        i++;
    }
    cout << cnt << endl;
    i=0;
    while(s[i]!='\0')
    {
        if(i == 0 && s[i]!=' ')
            cout << 'X';
        else if(s[i-1]==' ' && s[i]!=' ')
            cout << 'X';
        else
            cout << s[i];
        i++;
    }
    s[i]=' ' , s[i+1]='\0';
    i = 0 , cnt = 0;
    int j = 0;
    while(s[i]!='\0')
    {
        if(s[i]!=' ')
        {
            a[cnt][j]=s[i];
            j++;
        }
        else
        {
            j=0;
            if(s[i+1]!=' ')
                cnt++;
        }
        i++;
    }
    cout << endl;
    for(int i = 0 ; i < cnt ; ++i)
        for(int j = i + 1 ; j < cnt ; ++j)
            if(strcmp(a[i] , a[j]) > 0)
                swap(a[i] , a[j]);
    for(int i = 0 ; i < cnt ; ++i)
        if(a[i][0]!=' ')
            cout << a[i] << ' ';
    return 0;
}
Comentarii

S-ar putea sa iti placa