👤

Se citește de la tastatură un text format din cel mult 70 de caractere care conţine cuvinte separate prin spații. Fiecare cuvânt este format din litere mari sau mici ale alfabetului limbii engleze, sau din cifre. Primul şi ultimul caracter ale textului sunt diferite de caracterul spaţiu.

Să se scrie un program, în limbajul C/C++, care:

a) să afişeze pe prima linie a ecranului câte litere mici există în text;

b) să scrie pe următoarele linii cuvintele din textul iniţial care încep cu o consoană.


Răspuns :

#include <iostream>

#include <cctype>

char t[71];

bool vocal(char x) {

   x = tolower(x);

   return x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u';

}

size_t afisare(size_t j) {

   while (t[j] && t[j] != ' ')

       std::cout << t[j++];

       

   std::cout << '\n';

   return j + (t[j] == ' ');

}

size_t salt(size_t j) {

   while (t[j] && t[j] != ' ')

       ++j;

       

   return j + (t[j] == ' ');

}

int main() {

   std::cin.getline(t, 71);

   size_t i;

   

   {

       size_t m = 0;

       

       for (i = 0; t[i]; ++i)

           if (islower(t[i]))

               ++m;

               

       std::cout << m << '\n';

   }

   

   i = 0;

   

   while (t[i])

       i = (!vocal(t[i]) ? afisare : salt)(i);

}

Vă mulțumim pentru vizita pe platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de sprijin suplimentar, vă încurajăm să ne contactați. Revenirea dumneavoastră ne bucură, iar dacă v-a plăcut, nu uitați să adăugați site-ul nostru la favorite!


ID Teachingsy: Alte intrebari