fbpx

Problema #1873 – cuvinte_pare – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Un text are cel mult 100 de caractere, iar cuvintele sale sunt formate doar din litere mici ale alfabetului englez și sunt separate prin câte un spațiu.

Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat mai sus și îl transformă în memorie prin înlocuirea fiecărui cuvânt format din număr par de litere cu simbolul #.

Programul afișează pe ecran textul obținut sau mesajul nu exista dacă textul citit nu conține astfel de cuvinte.

Date de intrare

Programul citește de la tastatură un text.

Date de ieșire

Programul va afișa textul modificat.

Restricții și precizări

  • textul are cel mult 100 de caractere
  • cuvintele sunt formate doar din litere mici ale alfabetului englez

Exemplu

Intrare

anii de liceu sunt foarte frumosi

Ieșire

# # liceu # # frumosi
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char ch[300];
    cin.getline(ch , 300);
    int i = 0;
    int cnt=0;
    int c=0;
    int ok=0;
    while(ch[i]!='\0')
    {
        if(ch[i]==' ')
        {
            if(cnt%2==0)
                c++;
            cnt=0;
        }
        else
            cnt++;
        i++;
        if(ch[i]=='\0' && ok==0)
        {
            ch[i]=' ' , ch[i+1]='\0' , ok++;
        }
    }
    if(c!=0)
    {
        i=0;
        while(ch[i]!='\0')
        {
            if(ch[i]==' ')
            {
                if(cnt%2==0)
                    cout << '#';
                else
                {
                    i-=cnt;
                    while(ch[i]!=' ')
                    {
                     cout << ch[i];
                     i++;
                    }
                }
                cout << ' ';
                cnt=0;
            }
            else
                cnt++;
            i++;
        }
    }
    else
        cout << "nu exista";
    return 0;
}
Comentarii

S-ar putea sa iti placa